items: - type: STR_REPAIR #REPAIR NOT USED confMelee: name: STR_REPAIR size: 0.2 weight: 5 bigSprite: 268 meleeSound: 698 meleeHitSound: 699 meleeAnimation: 32 power: 60 damageType: 0 accuracyMelee: 80 battleType: 3 twoHanded: false invWidth: 2 invHeight: 3 armor: 52 skillApplied: true strengthApplied: true fixedWeapon: true attraction: 1 damageAlter: #REPAIR RandomType: 3 ToHealth: 0.0 ToStun: 0.0 ToArmor: -1.0 ToWound: 0.0 RandomWound: false RandomStun: false ArmorEffectiveness: 0.0 flatRate: true costMelee: time: 15 energy: 40 recover: false clipSize: -1 specialUseEmptyHand: true - type: STR_ELDAR_LIGHT #PSY weight: 0 bigSprite: 316 fireSound: [854, 855, 856, 857] power: 20 damageType: 5 accuracyAimed: 90 accuracySnap: 70 confAimed: shots: 1 name: STR_LH battleType: 1 confSnap: shots: 1 name: STR_LH costAimed: time: 50 energy: 20 morale: 10 stun: 10 costSnap: time: 40 energy: 20 morale: 10 stun: 10 damageAlter: #LIGHT RandomType: 2 #TFTD [50% - 150%] ArmorEffectiveness: 0.0 ToArmorPre: 0.0 ToArmor: 0.0 ToHealth: 2.0 ToStun: 0.2 invWidth: 2 invHeight: 3 clipSize: -1 bulletSprite: 17 blastRadius: 1 explosionHitSound: 864 hitAnimation: 152 twoHanded: false skillApplied: false strengthApplied: false recover: false fixedWeapon: true specialIconSprite: 6 specialUseEmptyHand: true - type: STR_ELDAR_LIGHT_SAFE weight: 0 bigSprite: 316 fireSound: [854, 855, 856, 857] power: 20 damageType: 5 accuracyAimed: 90 confAimed: shots: 1 name: STR_LH tuAimed: 50 battleType: 1 damageAlter: #LIGHT RandomType: 2 #TFTD [50% - 150%] ArmorEffectiveness: 0.0 ToArmorPre: 0.0 ToArmor: 0.0 ToHealth: 2.0 ToStun: 0.2 invWidth: 2 invHeight: 3 clipSize: -1 bulletSprite: 17 blastRadius: 1 explosionHitSound: 864 hitAnimation: 152 twoHanded: false skillApplied: false strengthApplied: false recover: false fixedWeapon: true specialIconSprite: 6 specialUseEmptyHand: false - type: AUX_PROBE #TOME #psiAttackName: STR_ANALYZE #string id of psi-amp attack name in the pop-up menu. Required to enable special attack. weight: 0 hitSound: 37 battleType: 8 LOSRequired: true tuUse: 5 recover: false fixedWeapon: true specialIconSprite: 5 specialUseEmptyHand: true #*** Melee tags: ITEM_REPAIRS_ARMOR: 1 confMelee: name: STR_REPAIR meleeSound: 698 meleeHitSound: 699 meleeAnimation: 32 meleeType: 0 meleePower: 60 accuracyMelee: 100 meleeBonus: strength: 0.5 meleeAlter: #REPAIR RandomType: 3 ToHealth: 0.0 ToStun: 0.0 ToArmor: -1.0 ToWound: 0.0 RandomWound: false RandomStun: false ArmorEffectiveness: 0.0 meleeMultiplier: melee: 0.8 costMelee: time: 15 energy: 40 - type: STR_MFIST #special weight: 0 bigSprite: 224 floorSprite: 111 handSprite: 256 meleeSound: 698 meleeHitSound: 699 meleeAnimation: 32 power: 100 damageAlter: #DA POWER ArmorEffectiveness: 0.7 ToArmorPre: 0.2 ToHealth: 0.9 damageType: 7 accuracyMelee: 80 tuMelee: 15 flatRate: true clipSize: -1 battleType: 3 twoHanded: false skillApplied: true strengthApplied: false recover: false fixedWeapon: true specialIconSprite: 4 specialUseEmptyHand: false experienceTrainingMode: 13 - type: AUX_SEDUCE tags: ITEM_STUN_ON_LOW_MORALE: 1 confMelee: name: STR_SEDUCE weight: 0 bigSprite: 372 meleeSound: 834 meleeHitSound: 833 meleeAnimation: 52 meleeMissSound: 0 power: 100 damageAlter: RandomType: 3 #3-> Flat [100% - 100%] ToStun: 1.0 ToMorale: 1.0 ArmorEffectiveness: 0.0 #how effective armor is against this damage. Default `0.0` for smoke and stun, `1.0` rest. damageType: 6 accuracyMelee: 110 tuMelee: 15 clipSize: -1 battleType: 3 twoHanded: false invWidth: 2 invHeight: 3 recover: false fixedWeapon: true specialIconSprite: 3 specialUseEmptyHand: false - type: SEDUCE_PSI_WEAPON psiSound: 834 #override `hitSound` when used for MC or Panic attack. psiMissSound: 0 #override `hitMissSound` when used for MC or Panic attack. psiAnimation: 52 #override `meleeAnimation` when used for MC or Panic attack. Use `HIT.PCK` psiMissAnimation: 52 #override `meleeMissAnimation` when MC or Panic attack was unsuccessful. Use `HIT.PCK` hitSound: 833 battleType: 9 tuUse: 25 flatRate: true recover: false - type: ALIEN_PSI_WEAPON hitSound: 36 battleType: 9 tuUse: 25 flatRate: true recover: false LOSRequired: true - type: STR_BOLTPISTOL_CHAOS tags: ITEM_HAS_RANDOMIZED_SPRITES: 1 - type: AUX_REPAIR tags: ITEM_REPAIRS_ARMOR: 1 extended: tags: RuleItem: ITEM_STUN_ON_LOW_MORALE: int ITEM_HAS_RANDOMIZED_SPRITES: int ITEM_REPAIRS_ARMOR: int BattleItem: ITEM_RANDOMIZED_SPRITE: int scripts: damageUnit: - offset: 1 code: | var ptr RuleItem itemRuleset; var int targetMorale; var int stunOnLowMorale; damaging_item.getRuleItem itemRuleset; itemRuleset.getTag stunOnLowMorale Tag.ITEM_STUN_ON_LOW_MORALE; if eq stunOnLowMorale 0; return; end; unit.getMorale targetMorale; if neq targetMorale 0; set to_stun 0; end; return; createItem: - offset: 1 code: | var ptr RuleItem itemRuleset; var int randomizedSprite; item.getRuleItem itemRuleset; itemRuleset.getTag randomizedSprite Tag.ITEM_HAS_RANDOMIZED_SPRITES; if neq 0 randomizedSprite; battle_game.randomRange randomizedSprite 0 randomizedSprite; item.setTag Tag.ITEM_RANDOMIZED_SPRITE randomizedSprite; end; return; selectItemSprite: - offset: 0.1 code: | var int randomizedSprite; item.getTag randomizedSprite Tag.ITEM_RANDOMIZED_SPRITE; if eq blit_part blit_item_big; add sprite_index randomizedSprite; end; return sprite_index; hitUnit: - offset: 5 code: | var ptr RuleItem weaponRuleset; var int itemRepairsArmor; var int currentArmor; var int maxArmor; var int compareArmor 100; weapon_item.getRuleItem weaponRuleset; weaponRuleset.getTag itemRepairsArmor Tag.ITEM_REPAIRS_ARMOR; if or eq 0 itemRepairsArmor neq battle_action battle_action_hit neq 0 damaging_type; return power part side; end; unit.getArmor currentArmor SIDE_FRONT; unit.getArmorMax maxArmor SIDE_FRONT; muldiv currentArmor 100 maxArmor; if lt currentArmor compareArmor; set side SIDE_FRONT; set compareArmor currentArmor; end; unit.getArmor currentArmor SIDE_LEFT; unit.getArmorMax maxArmor SIDE_LEFT; muldiv currentArmor 100 maxArmor; if lt currentArmor compareArmor; set side SIDE_LEFT; set compareArmor currentArmor; end; unit.getArmor currentArmor SIDE_RIGHT; unit.getArmorMax maxArmor SIDE_RIGHT; muldiv currentArmor 100 maxArmor; if lt currentArmor compareArmor; set side SIDE_RIGHT; set compareArmor currentArmor; end; unit.getArmor currentArmor SIDE_REAR; unit.getArmorMax maxArmor SIDE_REAR; muldiv currentArmor 100 maxArmor; if lt currentArmor compareArmor; set side SIDE_REAR; set compareArmor currentArmor; end; unit.getArmor currentArmor SIDE_UNDER; unit.getArmorMax maxArmor SIDE_UNDER; muldiv currentArmor 100 maxArmor; if lt currentArmor compareArmor; set side SIDE_UNDER; set compareArmor currentArmor; end; return power part side;