Jump to content

XML:ONCC: Difference between revisions

11,377 bytes added ,  12 April 2012
and the rest of it
(some copy paste)
(and the rest of it)
Line 19: Line 19:


==<AirConstants>==
==<AirConstants>==
;Units:times are in frames
:heights are in world units
:velocities are in world units per frames
:accelerations are in world units per frames squared
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling
:would be roughly equivalent to the starting velocity of a fall
:although the value .55 seems right, the "sinking" seems to be hardcoded now
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)
;Jetpack timer:You can press JUMP multiple times during the time window [http://mods.oni2.net/node/83 (quite fun!)]
;Falling height: let FH1 be the height at <MaxNoDamageFallingHeight>
:let FH2 be the height at <MaxDamageFallingHeight>
:let BH be the base health of the character
:let FH be the actual falling height
:then, if FH > FH2, the character is killed
:if FH < FH1, the character takes no damage
:if FH1 < FH < FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH
{|
{|
{{table}}
{{table}}
|width=200px|<FallGravity>
|width=200px|<FallGravity>
|width=40px| float
| downwards velocity? (always 0.55)
| downwards velocity? (always 0.55)
|-
|-
| <JumpGravity>
| <JumpGravity>
| float
| downward gravity acceleration
| downward gravity acceleration
|-
|-
| <JumpStartVelocity>
| <JumpStartVelocity>
| float
| starting velocity for a simple (tap) JUMP
| starting velocity for a simple (tap) JUMP
|-
|-
| <MaxVelocity>
| <MaxVelocity>
| float
| limit velocity for jumping and gravity flight
| limit velocity for jumping and gravity flight
|-
|-
| <JetpackAcceleration>
| <JetpackAcceleration>
| float
| upward acceleration (jetpack) if you hold JUMP  
| upward acceleration (jetpack) if you hold JUMP  
|-
|-
| <FramesFallGravity>
| <FramesFallGravity>
| upward acceleration (jetpack) if you hold JUMP
| int16
| gravity timer? (always 7)
|-
|-
| <JetpackTimer>
| <JetpackTimer>
| int16
| time during which you can use the jetpack
| time during which you can use the jetpack
|-
|-
| <MaxNoDamageFallingHeight>
| <MaxNoDamageFallingHeight>
| float
| maximal falling height without damage
| maximal falling height without damage
|-
|-
| <MaxDamageFallingHeight>
| <MaxDamageFallingHeight>
| float
| maximal falling height with damage
| maximal falling height with damage
|}
|}
;Units:times are in frames
:heights are in world units
:velocities are in world units per frames
:accelerations are in world units per frames squared
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling
:would be roughly equivalent to the starting velocity of a fall
:although the value .55 seems right, the "sinking" seems to be hardcoded now
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)
;Falling height: let FH1 be the height at 0x20
:let FH2 be the height at 0x24
:let BH be the base health of the character
:let FH be the actual falling height
:then, if FH > FH2, the character is killed
:if FH < FH1, the character takes no damage
:if FH1 < FH < FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH




Line 72: Line 80:
{{table}}
{{table}}
|width=200px| <Texture>
|width=200px| <Texture>
| shadow texture (TXMP)
|width=40px| float
| <font color="#777777">TXMP</font>file<font color="#777777">.oni</font>
|-
|-
| <MaxHeight>
| <MaxHeight>
| float
| height where the shadow fades out completely  
| height where the shadow fades out completely  
|-
|-
| <FadeHeight>
| <FadeHeight>
|  
| float
| height where the diameter of the shadow decreases and the shadow fades out half
|-
|-
| <SizeMax>
| <SizeMax>
|  
| float
| height where the diameter of the shadow decreases
|-
|-
| <SizeFade>
| <SizeFade>
|
| float
| height where the diameter of the shadow decreases
|-
|-
| <SizeMin>
| <SizeMin>
|  
| float
| height where the diameter of the shadow decreases
|-
|-
| <AlphaMax>
| <AlphaMax>
| int16
| transparency of the shadow for the first part of a jump  
| transparency of the shadow for the first part of a jump  
|-
|-
| <AlphaFade>
| <AlphaFade>
| int16
| transparency of the shadow for the second part of a jump  
| transparency of the shadow for the second part of a jump  
|}
|}
Line 101: Line 117:
{{table}}
{{table}}
|width=200px| <JumpDistance>
|width=200px| <JumpDistance>
|  
|width=40px| float
| always the same (25)
|-
|-
| <JumpHeight>
| <JumpHeight>
|
| int8
| always the same (22)
|-
|-
| <JumpDistanceSquares>
| <JumpDistanceSquares>
|
| int 8
| always the same (6)
|}
|}


Line 115: Line 134:
{{table}}
{{table}}
|width=200px| <RayIncrement>
|width=200px| <RayIncrement>
|width=40px| float
|always the same (40)
|always the same (40)
|-
|-
| <RayMax>
| <RayMax>
| float
| always the same (300)
| always the same (300)
|-
|-
| <RayAngle>
| <RayAngle>
| float
| always the same (0.017453 = PI/180)  
| always the same (0.017453 = PI/180)  
|-
|-
| <RayAngleMax>
| <RayAngleMax>
| float
| always the same (1.57 = PI/2)  
| always the same (1.57 = PI/2)  
|}
|}
Line 132: Line 155:
{{table}}
{{table}}
|width=200px| <DistanceXZ>
|width=200px| <DistanceXZ>
|width=40px| float
| always the same (5)
| always the same (5)
|-
|-
| <DistanceY>
| <DistanceY>
| float
| always the same (1)
| always the same (1)
|}
|}
Line 143: Line 168:
{{table}}
{{table}}
|width=200px| <HypoRegenerationRate>
|width=200px| <HypoRegenerationRate>
|width=40px| int16
| (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this
| (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this


Line 154: Line 180:
{|
{|
{{table}}
{{table}}
|width=200px| <Float>
|width=200px|
| always the same; (193600) this is 440 squared
|width=40px| float
| always the same (193600); this is 440 squared
|-
|-
| <Float>
| <Float>
| always the same; (48400) this is 220 squared
| float
| always the same (48400); this is 220 squared
|-
|-
| <Float>
| <Float>
| always the same; (12100) this is 110 squared  
| float
| always the same (12100); this is 110 squared  
|-
|-
| <Float>
| <Float>
| always the same; (0)
| float
| always the same (0)
|-
|-
| <Float>
| <Float>
| always the same; (0)
| float
| always the same (0)
|}
|}


Line 175: Line 206:
{{table}}
{{table}}
|width=200px| <BasePercentage>
|width=200px| <BasePercentage>
|
|width=40px|int16
| hurt_base_percentage; always the same (35)
|-
|-
| <MaxPercentage>
| <MaxPercentage>
|
| int16
| hurt_max_percentage; always the same (90)
|-
|-
| <PercentageThreshold>
| <PercentageThreshold>
|
| int16
| hurt_percentage_threshold; always the same (15)
|-
|-
| <Timer>
| <Timer>
|
| int16
| hurt_timer; always the same (120)
|-
|-
| <MinTimer>
| <MinTimer>
|
| int16
| hurt_min_timer; always the same (35)
|-
|-
| <MaxLight>
| <MaxLight>
|
| int16
| always the same (1)
|-
|-
| <MaxMedium>
| <MaxMedium>
|
| int16
| always the same (2)
|-
|-
| <DeathChance>
| <DeathChance>
|
| int16
| always the same (100)
|-
|-
| <VolumeTreshold>
| <VolumeTreshold>
|
| int16
| hurt_volume_threshold; always the same (10)
|-
|-
| <MediumTreshold>
| <MediumTreshold>
|
| int16
| hurt_medium_threshold; always the same (12)
|-
|-
| <HeavyTreshold>
| <HeavyTreshold>
|
| int16
| hurt_heavy_threshold; always the same (22)
|-
|-
| <MinVolume>
| <MinVolume>
|
| float
| minimal sound volume
|-
|-
| <LightSound>
| <LightSound>
|
| char[32]
| <font color="#777777">OSBD</font>file<font color="#777777">.imp.oni</font> (only the file name)
|-
|-
| <MediumSound>
| <MediumSound>
|
| char[32]
| <font color="#777777">OSBD</font>file<font color="#777777">.imp.oni</font> (only the file name)
|-
|-
| <HeavySound>
| <HeavySound>
|
| char[32]
| <font color="#777777">OSBD</font>file<font color="#777777">.imp.oni</font> (only the file name)
|-
|-
| <DeathSound>
| <DeathSound>
|
| char[32]
| <font color="#777777">OSBD</font>file<font color="#777777">.imp.oni</font> (only the file name)
|}
|}


Line 228: Line 275:
{{table}}
{{table}}
|width=200px| <Flags>
|width=200px| <Flags>
|width=40|flag
|
|
: NoStartleAnim
: NoStartleAnim
: EnableMeleeFireDodge
: EnableMeleeFireDodge
: ShootDodge
: ShootDodge (requires EnableMeleeFireDodge; AI tries to face shooter and shoot back while dodging)
: RunAwayDodge
: RunAwayDodge (requires EnableMeleeFireDodge; overrides ShootDodge; firingspread/projectile dodge enabled for weapons; AI isn't shooting, it just tends to run away, not facing shooter)
: NotUsed
: NotUsed
|-
|-
| <RotationSpeed>
| <RotationSpeed>
|
| float
| AI rotation speed factor. Reference rotation speed is about 1 turn (360°) per second. The setting is only effective if the AI is in control, so it's a bit like the AI's mouse sensitivity :)
|-
|-
| <DazedMinFrames>
| <DazedMinFrames>
|
| int16
| minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned
|-
|-
| <DazedMaxFrames>
| <DazedMaxFrames>
|
| int16
| maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned
|-
|-
| <DodgeReactFrames>
| <DodgeReactFrames>
|
| uint32
| number of frames after which AI realizes that it is in the firing spread and it starts dodging
|-
|-
| <DodgeTimeScale>
| <DodgeTimeScale>
|
| float
| minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears)
|-
|-
| <DodgeWeightScale>
| <DodgeWeightScale>
|
| float
| maximal firingspread dodge amount; IMO similar to maneouvre variable
|-
|-
| see [[#<Targeting>|<Targeting>]]
| <Targeting>
|
|
| see [[#<Targeting>|HERE]]
|-
|-
| see [[#<WeaponSkills>|<WeaponSkills>]]
| <WeaponSkills>
|
|
| see [[#<WeaponSkills>|HERE]]
|-
|-
| <DeadMakeSureDelay>
| <DeadMakeSureDelay>
|
| int32
| always the same (90), AI waits at the corpse for some time?
|-
|-
| <InvestigateBodyDelay>
| <InvestigateBodyDelay>
|
| int32
| always the same (240), unused ?
|-
|-
| <LostContactDelay>
| <LostContactDelay>
|
| int32
| always the same (180)
|-
|-
| <DeadTauntChance>
| <DeadTauntChance>
|
| int32
| chance of AI doing a taunt when player or AI's of another team dies
|-
|-
| <GoForGunChance>
| <GoForGunChance>
|
| int32
| determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command
|-
|-
| <RunPickupChance>
| <RunPickupChance>
|
| int32
| this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal "stop->pickup"; this is calculated AFTER engine decides that AI should run for weapon
|-
|-
| <CombatId>
| <CombatId>
|
| int16
| [[OBD_talk:BINA/OBJC/CMBT|combat profile ID]]
|-
|-
| <MeleeId>
| <MeleeId>
|
| int16
| [[OBD_talk:BINA/OBJC/MELE|melee profile ID]]
|-
|-
| see [[OBD_talk:SNDD#step_1:_preparing_the_TRAM|SNDD talk page]]
| <SoundConstants>
|
|
| see [[OBD_talk:SNDD#step_1:_preparing_the_TRAM|HERE]]
|-
|-
| <HostileThreatDefiniteTimer>
| <HostileThreatDefiniteTimer>
|
| int32
| how long will AI know exactly where its enemy is even if it can't see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)
|-
|-
| <HostileThreatStrongTimer>
| <HostileThreatStrongTimer>
|
| int32
| how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command
|-
|-
| <HostileThreatWeakTimer>
| <HostileThreatWeakTimer>
|
| int32
| how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command
|-
|-
| <FriendlyThreatDefiniteTimer>
| <FriendlyThreatDefiniteTimer>
|
| int32
| how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can't see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)
|-
|-
| <FriendlyThreatStrongTimer>
| <FriendlyThreatStrongTimer>
|
| int32
| how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command
|-
|-
| <FriendlyThreatWeakTimer>
| <FriendlyThreatWeakTimer>
|
| int32
| how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command
|-
|-
| <EarshotRadius>
| <EarshotRadius>
|
| float
| earshot radius; defines size of the sound-collision sphere around AI
|}
|}


Line 313: Line 385:
{{table}}
{{table}}
|width=200px| <StartleMissAngle>
|width=200px| <StartleMissAngle>
|
| width=40px| float
| always the same for TURR and ONCC (0.5)
|-
|-
| <StartleMissDistance>
| <StartleMissDistance>
|
| float
| always the same for TURR and ONCC (25)
|-
|-
| <PredictAmount>
| <PredictAmount>
|
| float
| always the same for TURR
|-
|-
| <PredictPositionDelayFrames>
| <PredictPositionDelayFrames>
|
| int32
| always the same for TURR
|-
|-
| <PredictDelayFrames>
| <PredictDelayFrames>
|
| int32
| always the same for TURR
|-
|-
| <PredictVelocityFrames>
| <PredictVelocityFrames>
|
| int32
| always the same for TURR
|-
|-
| <PredictTrendFrames>
| <PredictTrendFrames>
|
| int32
| always the same for TURR
|}
|}




===<WeaponSkills>===
===<WeaponSkills>===
{|width=100%|
|valign=top|
{{Table|width=""|align="left"}}
|-BGCOLOR="#E9E9E9" ALIGN=CENTER
!Weapon      ||recoil||bestangle||error||decay||inaccuracy||delays
|-ALIGN=CENTER   
|'''w0_sec''' || 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w1_tap''' || 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45
|-ALIGN=CENTER   
|'''w2_sap''' || 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w3_phr''' || 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w4_psm''' || 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w5_sbg''' || 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w6_vdg''' || 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w7_scc''' || 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w8_mbo''' || 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w9_scr''' || 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w10_sni'''|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w11_ba1'''|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0
|-ALIGN=CENTER   
|'''w12_ba2'''|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0
|}
|valign=top|
{|
{|
{{table}}
{{table}}
|width=200px| <RecoilCompensation>
|width=200px| <RecoilCompensation>
|
|width=40px| float
| (float; 0.0 = min, 1.0 = max)
|-       
|-       
| <BestAimingAngle>
| <BestAimingAngle>
|
| float
| best aiming angle in radians
|-
|-
| <ShotGroupError>
| <ShotGroupError>
|
| float
| shot grouping error
|-
|-
| <ShotGroupDecay>
| <ShotGroupDecay>
|
| float
| shot grouping decay
|-
|-
| <ShootingInaccuracyMultiplier>
| <ShootingInaccuracyMultiplier>
|
| float
| shooting inaccuracy multiplier
|-
|-
| <MinShotDelay>
| <MinShotDelay>
|
| uint16
| minimum delay between shots in frames
|-
|-
| <MaxShotDelay>
| <MaxShotDelay>
| uint16
| maximum delay between shots in frames
|}
;AI Shooting Skills
These can be reviewed with e.g. '''ai2_skill_select konoko_generic w1_tap''' and then either '''ai2_skill_show''' (prints to console) or '''ai2_skill_save''' (prints to file)
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro's thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade's ball, except '''w10_sni''' is still available) ('''w12_ba2''' and '''w11_ba1''' are a bit mixed up : the beam is made of '''w12_ba2''' particles, and the grenade is a '''w11_ba1''' particle...)
|}
===<VisionConstants>===
;Vision Field
The "range" and "max" values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):
{|
|
|
: <VerticalRange>0.766044438</VerticalRange>
: <CentralRange>0.819152057</CentralRange>
: <CentralMax>0.57357645 </CentralMax>
: <PeripheralRange>0.1736482</PeripheralRange>
: <PeripheralMax>-0.42261824</PeripheralMax>
|
: = 40°
: = 35°
: = 55°
: = 80°
: = 115°
|}
|}
Within "range" the "distance" field is used to compute visibility (character is visible if the distance between AI and character is < "distance" field). Between "range" and "max" the visibility distance decreases gradually towards 0. The vision field can be made visible with the script command *ai2_showvision =1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it's missing the central segment.




===<VisionConstants>===
{|
{|
{{table}}
{{table}}
|width=200px| <CentralDistance>
|width=200px| <CentralDistance>
|
|width=40px| float
| central vision distance
|-
|-
| <PeripheralDistance>
| <PeripheralDistance>
|
| float
| peripheral vision distance
|-
|-
| <VerticalRange>
| <VerticalRange>
|
| float
| vertical vision range
|-
|-
| <CentralRange>
| <CentralRange>
|
| float
| central vision range
|-
|-
| <CentralMax>
| <CentralMax>
|
| float
| central vision max
|-
|-
| <PeripheralRange>
| <PeripheralRange>
|
| float
| peripheral vision range
|-
|-
| <PeripheralMax>
| <PeripheralMax>
|
| float
| peripheral vision max
|}
|}


Line 391: Line 549:
{{table}}
{{table}}
|width=200px| <Variant>
|width=200px| <Variant>
| ONCV name
|width=40px|string
| <font color="#777777">ONCV</font>file<font color="#777777">.oni</font>, defines variants and upgrades
|-
|-
| <Particles>
| <Particles>
| ONCP instance number
| string
| [[#ONCP: character particle|ONCP]]  instance number
|-
|-
| <Impacts>
| <Impacts>
| ONIA instance number
| string
| [[#ONIA: Oni character impact array|ONIA]] instance number
|-
|-
| <ImpactModifierName>
| <ImpactModifierName>
|
| flag
| used to choose correct effect from [[OBD_talk:BINA/ONIE#XML_flags|ONIE]]; impact name -> material name -> modifier (<Component> must be probably "Impact")
: Any
: Light
: Medium
: Heavy
|-
|-
| <Impacts>
| <Impacts>
| Holds a lot <ONCCImpact><Name>...</Name></ONCCImpact>
| string
| holds a lot <ONCCImpact><Name><font color="#777777">Impt</font>name<font color="#777777">.oni</font> for character-environment collision; see [[OBD_talk:BINA/ONIE#Visual_guides:_weapon.2C_melee.2C_environment|... ONIE in relation to characters]]
|-
|-
| <DeathParticle>
| <DeathParticle>
|
| link
| in vanilla Oni only Mad Bomber uses it
|-
|-
| <BodySet>
| <BodySet>
| TRBS file
| link
| <font color="#777777">TRBS</font>file<font color="#777777">.oni</font>
|-
|-
| <BodyTextures>
| <BodyTextures>
| TRMA file
| link
| <font color="#777777">TRMA</font>file<font color="#777777">.oni</font>
|-
|-
| <BodyMaterials>
| <BodyMaterials>
| string
| [[#CBPM: character body part materials|CBPM]] instance number
| [[#CBPM: character body part materials|CBPM]] instance number
|-
|-
| <BodyImpacts>
| <BodyImpacts>
| string
| [[#CBPI: character body part impacts|CBPI]] instance number
| [[#CBPI: character body part impacts|CBPI]] instance number
|-
|-
| <FightModeTimer>
| <FightModeTimer>
|
| int32
| fight mode timer in 1/60 seconds
|-
|-
| <IdleAnimation1Timer>
| <IdleAnimation1Timer>
|
| int32
| first idle animation timer in 1/60 seconds
|-
|-
| <IdleAnimation2Timer>
| <IdleAnimation2Timer>
|
| int32
| second idle animation timer in 1/60 seconds
|-
|-
| <Health>
| <Health>
|
| int32
| basic health of the character model; extra health information for every unique character are stored in the [[OBD_talk:BINA/OBJC/CHAR#XML|BINACJBOCharacter.oni]] file
|-
|-
| <FeetBones>
| <FeetBones>
| flag
|
|
: LeftFoot
: RightFoot
|-
|-
| <MinBodySizeFactor>
| <MinBodySizeFactor>
|
| float
| minimal body size factor
|-
|-
| <MaxBodySizeFactor>
| <MaxBodySizeFactor>
|
| float
| maximal body size factor
|-
|-
| <DamageFactors>
| <DamageFactors>
|
|
| see [[#<DamageFactors>|HERE]]
|-
|-
| <BossShieldProtectAmount>
| <BossShieldProtectAmount>
|
| float
| BossShield Protect Amount
|-
|-
| <Animations>
| <Animations>
|
| link
| <font color="#777777">TRAC</font>file<font color="#777777">.oni</font>
|-
|-
| <AimingScreens>
| <AimingScreens>
|
| link
| <font color="#777777">TRAS</font>file<font color="#777777">.oni</font>
|-
|-
| <AIRateOfFire>
| <AIRateOfFire>
|
| int16
| AI Rate of Fire
|-
|-
| <DeathDeleteDelay>
| <DeathDeleteDelay>
|
| int16
| time between death and deletion, in frames (about 3 seconds for mad bomber)
|-
|-
| <WeaponHand>
| <WeaponHand>
| flag
|
|
: 0 - right
: 1 - left
|-
|-
| <HasDaodanPowers>
| <HasDaodanPowers>
|
| int8
| when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)
|-
|-
| <HasSupershield>
| <HasSupershield>
|
| int8
| when set to 1 indicates that character has supershield
* is visible as red shield when overpowered
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too
* now it prevents damage from weapon fire and melee (exception are throws)
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])
|-
|-
| <CantTouchThis>
| <CantTouchThis>
|
| int8
| when set to 1, generically turns on canttouchthis cheat for this ONCC (used by ONCCMutantMuro)
|}
 
 
===<DamageFactors>===
The following 7 float values corespond to damage types.
{|
{{table}}
|width=200px| <Float>
|width=40px| float
| somthing with normal damage ?
|-
| <Float>
| float
| something with minor stun ?
|-
| <Float>
| float
| major stun timer; specifies how long should be this char stunned when hit with w6_vdg; the longest time possible to be stunned is when this field is zero. Then this ONCC is stunned for 200 frames (30 frames for initial stagger + the rest of the frames is stun animation). The shortest time is for 1.000000 (no stagger/stun at all)
|-
| <Float>
| float
| something with minor knockdown ?
|-
| <Float>
| float
|  something with major knockdown ?
|-
| <Float>
| float
| something with blownup ?
|-
| <Float>
| float
| something with pickup ?
|}
|}


8,018

edits