Documentation ¶
Index ¶
- Variables
- func GetUnitBackgroundImage(banner data.BannerType, imageCache *util.ImageCache) (*ebiten.Image, error)
- func MakeUpdateUnitColorsFunc(banner data.BannerType) util.ImageTransformFunc
- type Ability
- type AbilityType
- type AttackSound
- type Damage
- type ExperienceData
- type ExperienceInfo
- type Facing
- type HeroExperienceLevel
- type MovementSound
- type NormalExperienceLevel
- type OverworldUnit
- func (unit *OverworldUnit) AddEnchantment(enchantment data.UnitEnchantment)
- func (unit *OverworldUnit) AddExperience(amount int)
- func (unit *OverworldUnit) AdjustHealth(amount int)
- func (unit *OverworldUnit) GetAbilities() []Ability
- func (unit *OverworldUnit) GetArtifactSlots() []artifact.ArtifactSlot
- func (unit *OverworldUnit) GetArtifacts() []*artifact.Artifact
- func (unit *OverworldUnit) GetAttackSound() AttackSound
- func (unit *OverworldUnit) GetBanner() data.BannerType
- func (unit *OverworldUnit) GetBaseDefense() int
- func (unit *OverworldUnit) GetBaseHitPoints() int
- func (unit *OverworldUnit) GetBaseMeleeAttackPower() int
- func (unit *OverworldUnit) GetBaseRangedAttackPower() int
- func (unit *OverworldUnit) GetBaseResistance() int
- func (unit *OverworldUnit) GetCombatIndex(facing Facing) int
- func (unit *OverworldUnit) GetCombatLbxFile() string
- func (unit *OverworldUnit) GetCombatRangeIndex(facing Facing) int
- func (unit *OverworldUnit) GetCount() int
- func (unit *OverworldUnit) GetDefense() int
- func (unit *OverworldUnit) GetEnchantments() []data.UnitEnchantment
- func (unit *OverworldUnit) GetExperience() int
- func (unit *OverworldUnit) GetExperienceData() ExperienceData
- func (unit *OverworldUnit) GetExperienceLevel() NormalExperienceLevel
- func (unit *OverworldUnit) GetHealth() int
- func (unit *OverworldUnit) GetHitPoints() int
- func (unit *OverworldUnit) GetKnownSpells() []string
- func (unit *OverworldUnit) GetLbxFile() string
- func (unit *OverworldUnit) GetLbxIndex() int
- func (unit *OverworldUnit) GetMaxHealth() int
- func (unit *OverworldUnit) GetMeleeAttackPower() int
- func (unit *OverworldUnit) GetMovementSound() MovementSound
- func (unit *OverworldUnit) GetMovementSpeed() int
- func (unit *OverworldUnit) GetMovesLeft() fraction.Fraction
- func (unit *OverworldUnit) GetName() string
- func (unit *OverworldUnit) GetPatrol() bool
- func (unit *OverworldUnit) GetPlane() data.Plane
- func (unit *OverworldUnit) GetProductionCost() int
- func (unit *OverworldUnit) GetRace() data.Race
- func (unit *OverworldUnit) GetRangeAttackSound() RangeAttackSound
- func (unit *OverworldUnit) GetRangedAttackDamageType() Damage
- func (unit *OverworldUnit) GetRangedAttackPower() int
- func (unit *OverworldUnit) GetRangedAttacks() int
- func (unit *OverworldUnit) GetRawUnit() Unit
- func (unit *OverworldUnit) GetResistance() int
- func (unit *OverworldUnit) GetTitle() string
- func (unit *OverworldUnit) GetToHitMelee() int
- func (unit *OverworldUnit) GetUpkeepFood() int
- func (unit *OverworldUnit) GetUpkeepGold() int
- func (unit *OverworldUnit) GetUpkeepMana() int
- func (unit *OverworldUnit) GetWeaponBonus() data.WeaponBonus
- func (unit *OverworldUnit) GetX() int
- func (unit *OverworldUnit) GetY() int
- func (unit *OverworldUnit) HasAbility(ability AbilityType) bool
- func (unit *OverworldUnit) HasMovesLeft() bool
- func (unit *OverworldUnit) IsFlying() bool
- func (unit *OverworldUnit) IsHero() bool
- func (unit *OverworldUnit) Move(dx int, dy int, cost fraction.Fraction)
- func (unit *OverworldUnit) NaturalHeal(rate float64)
- func (unit *OverworldUnit) RemoveEnchantment(toRemove data.UnitEnchantment)
- func (unit *OverworldUnit) ResetMoves()
- func (unit *OverworldUnit) SetId(id uint64)
- func (unit *OverworldUnit) SetMovesLeft(moves fraction.Fraction)
- func (unit *OverworldUnit) SetPatrol(patrol bool)
- func (unit *OverworldUnit) SetPlane(plane data.Plane)
- func (unit *OverworldUnit) SetWeaponBonus(bonus data.WeaponBonus)
- type RangeAttackSound
- type StackUnit
- type Unit
- func (unit *Unit) Equals(other Unit) bool
- func (unit *Unit) GetAbilities() []Ability
- func (unit *Unit) GetBaseDefense() int
- func (unit *Unit) GetBaseHitPoints() int
- func (unit *Unit) GetBaseMeleeAttackPower() int
- func (unit *Unit) GetBaseRangedAttackPower() int
- func (unit *Unit) GetBaseResistance() int
- func (unit *Unit) GetCombatIndex(facing Facing) int
- func (unit *Unit) GetCombatLbxFile() string
- func (unit *Unit) GetCombatRangeIndex(facing Facing) int
- func (unit *Unit) GetCount() int
- func (unit *Unit) GetDefense() int
- func (unit *Unit) GetHitPoints() int
- func (unit *Unit) GetMaxHealth() int
- func (unit *Unit) GetMeleeAttackPower() int
- func (unit *Unit) GetMovementSpeed() int
- func (unit *Unit) GetName() string
- func (unit *Unit) GetProductionCost() int
- func (unit *Unit) GetRangedAttackDamageType() Damage
- func (unit *Unit) GetRangedAttackPower() int
- func (unit *Unit) GetResistance() int
- func (unit *Unit) GetUpkeepFood() int
- func (unit *Unit) GetUpkeepGold() int
- func (unit *Unit) GetUpkeepMana() int
- func (unit *Unit) HasAbility(ability AbilityType) bool
- func (unit *Unit) IsNone() bool
- func (unit *Unit) IsSettlers() bool
- func (unit *Unit) String() string
Constants ¶
This section is empty.
Variables ¶
View Source
var AllUnits []Unit = []Unit{}/* 196 elements not displayed */
Functions ¶
func GetUnitBackgroundImage ¶
func GetUnitBackgroundImage(banner data.BannerType, imageCache *util.ImageCache) (*ebiten.Image, error)
func MakeUpdateUnitColorsFunc ¶
func MakeUpdateUnitColorsFunc(banner data.BannerType) util.ImageTransformFunc
Types ¶
type Ability ¶
type Ability struct { Ability AbilityType Value float32 // contains filtered or unexported fields }
func MakeAbility ¶
func MakeAbility(ability AbilityType) Ability
func MakeAbilityValue ¶
func MakeAbilityValue(ability AbilityType, value float32) Ability
type AbilityType ¶
type AbilityType int
const ( AbilityNone AbilityType = iota // unit abilities AbilityArmorPiercing AbilityCauseFear AbilityColdImmunity AbilityConstruction AbilityCreateOutpost AbilityCreateUndead AbilityDeathGaze AbilityDeathImmunity AbilityDispelEvil AbilityDoomBoltSpell AbilityDoomGaze AbilityFireballSpell AbilityFireBreath AbilityFireImmunity AbilityFirstStrike AbilityForester AbilityHealer AbilityHealingSpell AbilityHolyBonus AbilityIllusion AbilityIllusionsImmunity AbilityImmolation AbilityInvisibility AbilityLargeShield AbilityLifeSteal AbilityLightningBreath AbilityLongRange AbilityMagicImmunity AbilityMeld AbilityMerging AbilityMissileImmunity AbilityMountaineer AbilityNegateFirstStrike AbilityNonCorporeal AbilityPathfinding AbilityPlaneShift AbilityPoisonImmunity AbilityPoisonTouch AbilityPurify AbilityRegeneration AbilityResistanceToAll AbilityScouting AbilityStoningGaze AbilityStoningImmunity AbilityStoningTouch AbilitySummonDemons AbilityToHit AbilityTransport AbilityTeleporting AbilityThrown AbilityWallCrusher AbilityWeaponImmunity AbilityWebSpell AbilityWindWalking // hero abilities AbilityAgility AbilitySuperAgility AbilityArcanePower AbilitySuperArcanePower AbilityArmsmaster AbilitySuperArmsmaster AbilityBlademaster AbilitySuperBlademaster AbilityCaster AbilityCharmed AbilityConstitution AbilitySuperConstitution AbilityLeadership AbilitySuperLeadership AbilityLegendary AbilitySuperLegendary AbilityLucky AbilityMight AbilitySuperMight AbilityNoble AbilityPrayermaster AbilitySuperPrayermaster AbilitySage AbilitySuperSage )
type AttackSound ¶
type AttackSound int
const ( AttackSoundNone AttackSound = iota AttackSoundMonster1 AttackSoundMonster2 AttackSoundMonster3 AttackSoundMonster4 AttackSoundMonsterVsNormal AttackSoundMonster5 AttackSoundNormal AttackSoundWeak )
func (AttackSound) LbxIndex ¶
func (sound AttackSound) LbxIndex() int
type ExperienceData ¶
type ExperienceInfo ¶
type HeroExperienceLevel ¶
type HeroExperienceLevel int
const ( ExperienceHero HeroExperienceLevel = iota ExperienceMyrmidon ExperienceCaptain ExperienceCommander ExperienceChampionHero ExperienceLord ExperienceGrandLord ExperienceSuperHero ExperienceDemiGod )
func GetHeroExperienceLevel ¶
func GetHeroExperienceLevel(experience int, warlordRetort bool, crusade bool) HeroExperienceLevel
func (HeroExperienceLevel) ExperienceRequired ¶
func (level HeroExperienceLevel) ExperienceRequired(warlordRetort bool, crusade bool) int
func (*HeroExperienceLevel) Name ¶
func (hero *HeroExperienceLevel) Name() string
func (*HeroExperienceLevel) ToInt ¶
func (hero *HeroExperienceLevel) ToInt() int
type MovementSound ¶
type MovementSound int
const ( MovementSoundNone MovementSound = iota MovementSoundMarching MovementSoundHorse MovementSoundFly MovementSoundBigSteps MovementSoundMerge MovementSoundShuffle )
func (MovementSound) LbxIndex ¶
func (sound MovementSound) LbxIndex() int
type NormalExperienceLevel ¶
type NormalExperienceLevel int
const ( ExperienceRecruit NormalExperienceLevel = iota ExperienceRegular ExperienceVeteran ExperienceElite // also needs either warlord retort or crusade enchantment ExperienceUltraElite // needs both warlord retort and crusade enchantment in play ExperienceChampionNormal )
func GetNormalExperienceLevel ¶
func GetNormalExperienceLevel(experience int, warlordRetort bool, crusade bool) NormalExperienceLevel
func (NormalExperienceLevel) ExperienceRequired ¶
func (level NormalExperienceLevel) ExperienceRequired(warlordRetort bool, crusade bool) int
func (*NormalExperienceLevel) Name ¶
func (level *NormalExperienceLevel) Name() string
func (*NormalExperienceLevel) ToInt ¶
func (level *NormalExperienceLevel) ToInt() int
type OverworldUnit ¶
type OverworldUnit struct { ExperienceInfo ExperienceInfo Unit Unit MovesLeft fraction.Fraction Banner data.BannerType Plane data.Plane X int Y int Id uint64 Health int Patrol bool // to get the level, use the conversion functions in experience.go Experience int WeaponBonus data.WeaponBonus Enchantments []data.UnitEnchantment }
func MakeOverworldUnit ¶
func MakeOverworldUnit(unit Unit) *OverworldUnit
func MakeOverworldUnitFromUnit ¶
func MakeOverworldUnitFromUnit(unit Unit, x int, y int, plane data.Plane, banner data.BannerType, experienceInfo ExperienceInfo) *OverworldUnit
func (*OverworldUnit) AddEnchantment ¶
func (unit *OverworldUnit) AddEnchantment(enchantment data.UnitEnchantment)
func (*OverworldUnit) AddExperience ¶
func (unit *OverworldUnit) AddExperience(amount int)
func (*OverworldUnit) AdjustHealth ¶
func (unit *OverworldUnit) AdjustHealth(amount int)
func (*OverworldUnit) GetAbilities ¶
func (unit *OverworldUnit) GetAbilities() []Ability
func (*OverworldUnit) GetArtifactSlots ¶
func (unit *OverworldUnit) GetArtifactSlots() []artifact.ArtifactSlot
func (*OverworldUnit) GetArtifacts ¶
func (unit *OverworldUnit) GetArtifacts() []*artifact.Artifact
func (*OverworldUnit) GetAttackSound ¶
func (unit *OverworldUnit) GetAttackSound() AttackSound
func (*OverworldUnit) GetBanner ¶
func (unit *OverworldUnit) GetBanner() data.BannerType
func (*OverworldUnit) GetBaseDefense ¶
func (unit *OverworldUnit) GetBaseDefense() int
func (*OverworldUnit) GetBaseHitPoints ¶
func (unit *OverworldUnit) GetBaseHitPoints() int
func (*OverworldUnit) GetBaseMeleeAttackPower ¶
func (unit *OverworldUnit) GetBaseMeleeAttackPower() int
func (*OverworldUnit) GetBaseRangedAttackPower ¶
func (unit *OverworldUnit) GetBaseRangedAttackPower() int
func (*OverworldUnit) GetBaseResistance ¶
func (unit *OverworldUnit) GetBaseResistance() int
func (*OverworldUnit) GetCombatIndex ¶
func (unit *OverworldUnit) GetCombatIndex(facing Facing) int
func (*OverworldUnit) GetCombatLbxFile ¶
func (unit *OverworldUnit) GetCombatLbxFile() string
func (*OverworldUnit) GetCombatRangeIndex ¶
func (unit *OverworldUnit) GetCombatRangeIndex(facing Facing) int
func (*OverworldUnit) GetCount ¶
func (unit *OverworldUnit) GetCount() int
func (*OverworldUnit) GetDefense ¶
func (unit *OverworldUnit) GetDefense() int
func (*OverworldUnit) GetEnchantments ¶
func (unit *OverworldUnit) GetEnchantments() []data.UnitEnchantment
func (*OverworldUnit) GetExperience ¶
func (unit *OverworldUnit) GetExperience() int
func (*OverworldUnit) GetExperienceData ¶
func (unit *OverworldUnit) GetExperienceData() ExperienceData
func (*OverworldUnit) GetExperienceLevel ¶
func (unit *OverworldUnit) GetExperienceLevel() NormalExperienceLevel
func (*OverworldUnit) GetHealth ¶
func (unit *OverworldUnit) GetHealth() int
func (*OverworldUnit) GetHitPoints ¶
func (unit *OverworldUnit) GetHitPoints() int
func (*OverworldUnit) GetKnownSpells ¶
func (unit *OverworldUnit) GetKnownSpells() []string
func (*OverworldUnit) GetLbxFile ¶
func (unit *OverworldUnit) GetLbxFile() string
func (*OverworldUnit) GetLbxIndex ¶
func (unit *OverworldUnit) GetLbxIndex() int
func (*OverworldUnit) GetMaxHealth ¶
func (unit *OverworldUnit) GetMaxHealth() int
func (*OverworldUnit) GetMeleeAttackPower ¶
func (unit *OverworldUnit) GetMeleeAttackPower() int
func (*OverworldUnit) GetMovementSound ¶
func (unit *OverworldUnit) GetMovementSound() MovementSound
func (*OverworldUnit) GetMovementSpeed ¶
func (unit *OverworldUnit) GetMovementSpeed() int
func (*OverworldUnit) GetMovesLeft ¶
func (unit *OverworldUnit) GetMovesLeft() fraction.Fraction
func (*OverworldUnit) GetName ¶
func (unit *OverworldUnit) GetName() string
func (*OverworldUnit) GetPatrol ¶
func (unit *OverworldUnit) GetPatrol() bool
func (*OverworldUnit) GetPlane ¶
func (unit *OverworldUnit) GetPlane() data.Plane
func (*OverworldUnit) GetProductionCost ¶
func (unit *OverworldUnit) GetProductionCost() int
func (*OverworldUnit) GetRace ¶
func (unit *OverworldUnit) GetRace() data.Race
func (*OverworldUnit) GetRangeAttackSound ¶
func (unit *OverworldUnit) GetRangeAttackSound() RangeAttackSound
func (*OverworldUnit) GetRangedAttackDamageType ¶
func (unit *OverworldUnit) GetRangedAttackDamageType() Damage
func (*OverworldUnit) GetRangedAttackPower ¶
func (unit *OverworldUnit) GetRangedAttackPower() int
func (*OverworldUnit) GetRangedAttacks ¶
func (unit *OverworldUnit) GetRangedAttacks() int
func (*OverworldUnit) GetRawUnit ¶
func (unit *OverworldUnit) GetRawUnit() Unit
func (*OverworldUnit) GetResistance ¶
func (unit *OverworldUnit) GetResistance() int
func (*OverworldUnit) GetTitle ¶
func (unit *OverworldUnit) GetTitle() string
func (*OverworldUnit) GetToHitMelee ¶
func (unit *OverworldUnit) GetToHitMelee() int
func (*OverworldUnit) GetUpkeepFood ¶
func (unit *OverworldUnit) GetUpkeepFood() int
func (*OverworldUnit) GetUpkeepGold ¶
func (unit *OverworldUnit) GetUpkeepGold() int
func (*OverworldUnit) GetUpkeepMana ¶
func (unit *OverworldUnit) GetUpkeepMana() int
func (*OverworldUnit) GetWeaponBonus ¶
func (unit *OverworldUnit) GetWeaponBonus() data.WeaponBonus
func (*OverworldUnit) GetX ¶
func (unit *OverworldUnit) GetX() int
func (*OverworldUnit) GetY ¶
func (unit *OverworldUnit) GetY() int
func (*OverworldUnit) HasAbility ¶
func (unit *OverworldUnit) HasAbility(ability AbilityType) bool
func (*OverworldUnit) HasMovesLeft ¶
func (unit *OverworldUnit) HasMovesLeft() bool
func (*OverworldUnit) IsFlying ¶
func (unit *OverworldUnit) IsFlying() bool
func (*OverworldUnit) IsHero ¶
func (unit *OverworldUnit) IsHero() bool
func (*OverworldUnit) Move ¶
func (unit *OverworldUnit) Move(dx int, dy int, cost fraction.Fraction)
func (*OverworldUnit) NaturalHeal ¶
func (unit *OverworldUnit) NaturalHeal(rate float64)
restore health points on the overworld
func (*OverworldUnit) RemoveEnchantment ¶
func (unit *OverworldUnit) RemoveEnchantment(toRemove data.UnitEnchantment)
func (*OverworldUnit) ResetMoves ¶
func (unit *OverworldUnit) ResetMoves()
func (*OverworldUnit) SetId ¶
func (unit *OverworldUnit) SetId(id uint64)
func (*OverworldUnit) SetMovesLeft ¶
func (unit *OverworldUnit) SetMovesLeft(moves fraction.Fraction)
func (*OverworldUnit) SetPatrol ¶
func (unit *OverworldUnit) SetPatrol(patrol bool)
func (*OverworldUnit) SetPlane ¶
func (unit *OverworldUnit) SetPlane(plane data.Plane)
func (*OverworldUnit) SetWeaponBonus ¶
func (unit *OverworldUnit) SetWeaponBonus(bonus data.WeaponBonus)
type RangeAttackSound ¶
type RangeAttackSound int
const ( RangeAttackSoundNone RangeAttackSound = iota RangeAttackSoundFireball RangeAttackSoundArrow RangeAttackSoundSling RangeAttackSoundLaunch // for catapult or other similar things )
func (RangeAttackSound) LbxIndex ¶
func (sound RangeAttackSound) LbxIndex() int
type StackUnit ¶
type StackUnit interface { SetId(id uint64) ResetMoves() NaturalHeal(rate float64) GetPatrol() bool SetPatrol(bool) IsFlying() bool GetName() string GetTitle() string GetPlane() data.Plane SetPlane(data.Plane) GetMovesLeft() fraction.Fraction SetMovesLeft(fraction.Fraction) GetRace() data.Race GetUpkeepGold() int GetUpkeepFood() int GetUpkeepMana() int GetEnchantments() []data.UnitEnchantment AddEnchantment(data.UnitEnchantment) RemoveEnchantment(data.UnitEnchantment) GetBanner() data.BannerType SetWeaponBonus(data.WeaponBonus) GetWeaponBonus() data.WeaponBonus GetX() int GetY() int IsHero() bool Move(int, int, fraction.Fraction) GetLbxFile() string GetLbxIndex() int GetKnownSpells() []string HasAbility(AbilityType) bool GetAbilities() []Ability GetBaseDefense() int GetDefense() int GetBaseHitPoints() int GetHitPoints() int GetBaseMeleeAttackPower() int GetMeleeAttackPower() int GetBaseRangedAttackPower() int GetBaseResistance() int GetCombatLbxFile() string GetCombatIndex(Facing) int GetCount() int GetMovementSpeed() int GetProductionCost() int GetRangedAttackPower() int GetResistance() int AdjustHealth(amount int) GetAttackSound() AttackSound GetCombatRangeIndex(Facing) int GetHealth() int GetMaxHealth() int GetMovementSound() MovementSound GetRangeAttackSound() RangeAttackSound GetRangedAttackDamageType() Damage GetRangedAttacks() int AddExperience(int) GetExperience() int GetExperienceData() ExperienceData GetRawUnit() Unit GetToHitMelee() int GetArtifactSlots() []artifact.ArtifactSlot GetArtifacts() []*artifact.Artifact }
type Unit ¶
type Unit struct { // icon on the overworld and in various ui's LbxFile string Index int // sprites to use in combat CombatLbxFile string // first index of combat tiles, order is always up, up-right, right, down-right, down, down-left, left, up-left CombatIndex int Name string Race data.Race Flying bool Swimming bool Abilities []Ability // fantastic units belong to a specific magic realm Realm data.MagicType RequiredBuildings []building.Building RangedAttackDamageType Damage AttackSound AttackSound MovementSound MovementSound RangeAttackSound RangeAttackSound // first sprite index in cmbmagic.lbx for the range attack RangeAttackIndex int KnownSpells []string // number of figures that are drawn in a single combat tile Count int // cost in terms of production to build the unit ProductionCost int MeleeAttackPower int MovementSpeed int Defense int Resistance int HitPoints int RangedAttackPower int RangedAttacks int UpkeepGold int UpkeepFood int UpkeepMana int // For heroes, the spells the unit can cast Spells []string }
var AirElemental Unit = Unit{ LbxFile: "units2.lbx", Index: 74, Name: "Air Elemental", Race: data.RaceFantastic, CombatLbxFile: "figure13.lbx", CombatIndex: 112, Count: 1, Realm: data.SorceryMagic, Flying: true, MovementSpeed: 5, MeleeAttackPower: 15, Defense: 8, Resistance: 9, HitPoints: 10, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityInvisibility), }, }
var AirShip Unit = Unit{ LbxFile: "units1.lbx", Index: 75, CombatLbxFile: "figures6.lbx", CombatIndex: 0, Name: "Air Ship", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 1, Flying: true, MovementSpeed: 4, MeleeAttackPower: 5, RangedAttackPower: 10, RangedAttacks: 10, RangedAttackDamageType: DamageRangedBoulder, Defense: 5, Resistance: 8, HitPoints: 20, Abilities: []Ability{MakeAbility(AbilityScouting), MakeAbility(AbilityWallCrusher)}, RequiredBuildings: []building.Building{building.BuildingShipYard}, Race: data.RaceDraconian, }
var Angel Unit = Unit{ LbxFile: "units2.lbx", Index: 57, CombatLbxFile: "figure12.lbx", CombatIndex: 96, Name: "Angel", UpkeepMana: 15, Count: 1, Flying: true, MovementSpeed: 3, MeleeAttackPower: 13, Defense: 7, Resistance: 8, HitPoints: 15, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbilityValue(AbilityHolyBonus, 1), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityDispelEvil), }, Race: data.RaceFantastic, Realm: data.LifeMagic, }
var ArchAngel Unit = Unit{ LbxFile: "units2.lbx", Index: 58, CombatLbxFile: "figure12.lbx", CombatIndex: 104, Name: "Arch Angel", UpkeepMana: 20, Count: 1, Flying: true, MovementSpeed: 4, MeleeAttackPower: 15, Defense: 10, Resistance: 12, HitPoints: 18, KnownSpells: []string{ "Bless", "Star Fires", "Holy Weapon", "Healing", "Holy Armor", "Heroism", "True Light", "True Sight", "Dispel Evil", "Prayer", "Raise Dead", "Invulnerability", "Lionheart", "Righteousness", }, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityCaster, 40), MakeAbilityValue(AbilityHolyBonus, 2), MakeAbility(AbilityIllusionsImmunity), }, Race: data.RaceFantastic, Realm: data.LifeMagic, }
var BarbarianBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 41, Name: "Bowmen", CombatLbxFile: "figures3.lbx", CombatIndex: 88, ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 5, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceBarbarian, }
var BarbarianCavalry Unit = Unit{ LbxFile: "units1.lbx", Index: 42, Name: "Cavalry", CombatLbxFile: "figures3.lbx", CombatIndex: 96, ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 2, Resistance: 5, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityFirstStrike), MakeAbilityValue(AbilityThrown, 1)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceBarbarian, }
var BarbarianSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 44, CombatLbxFile: "figures3.lbx", CombatIndex: 112, Name: "Settlers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 5, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceBarbarian, }
var BarbarianShaman Unit = Unit{ LbxFile: "units1.lbx", Index: 43, CombatLbxFile: "figures3.lbx", CombatIndex: 104, Name: "Shaman", ProductionCost: 50, UpkeepGold: 1, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 2, RangedAttackPower: 2, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 7, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify)}, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceBarbarian, }
var BarbarianSpearmen Unit = Unit{ LbxFile: "units1.lbx", Name: "Spearmen", Index: 39, CombatLbxFile: "figures3.lbx", CombatIndex: 72, ProductionCost: 15, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 2, Resistance: 5, HitPoints: 1, Abilities: []Ability{MakeAbilityValue(AbilityThrown, 1)}, Race: data.RaceBarbarian, }
var BarbarianSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 40, Name: "Swordsmen", CombatLbxFile: "figures3.lbx", CombatIndex: 80, ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 5, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbilityValue(AbilityThrown, 1)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceBarbarian, }
var Basilisk Unit = Unit{ LbxFile: "units2.lbx", Index: 62, Name: "Basilisk", CombatLbxFile: "figure13.lbx", CombatIndex: 16, UpkeepMana: 7, Count: 1, Realm: data.NatureMagic, MovementSpeed: 2, MeleeAttackPower: 15, Defense: 4, Resistance: 7, HitPoints: 30, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityStoningGaze, -1)}, Race: data.RaceFantastic, }
var BeastmenBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 49, CombatLbxFile: "figures4.lbx", CombatIndex: 32, Name: "Bowmen", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 2, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 5, HitPoints: 2, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceBeastmen, }
var BeastmenEngineer Unit = Unit{ LbxFile: "units1.lbx", Index: 52, CombatLbxFile: "figures4.lbx", CombatIndex: 56, Name: "Engineers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 2, Defense: 1, Resistance: 5, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityConstruction), MakeAbility(AbilityWallCrusher)}, RequiredBuildings: []building.Building{building.BuildingBuildersHall}, Race: data.RaceBeastmen, }
var BeastmenHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 48, CombatLbxFile: "figures4.lbx", CombatIndex: 24, ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 5, Defense: 3, Resistance: 5, HitPoints: 2, Name: "Halberdiers", RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceBeastmen, }
var BeastmenMagician Unit = Unit{ LbxFile: "units1.lbx", Index: 51, CombatLbxFile: "figures4.lbx", CombatIndex: 48, Name: "Magicians", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 2, RangedAttackPower: 5, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 9, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityMissileImmunity), MakeAbilityValue(AbilityFireballSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceBeastmen, }
var BeastmenPriest Unit = Unit{ LbxFile: "units1.lbx", Index: 50, CombatLbxFile: "figures4.lbx", CombatIndex: 40, Name: "Priests", ProductionCost: 150, UpkeepGold: 3, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 4, RangedAttackPower: 4, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 8, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbilityValue(AbilityHealingSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingParthenon}, Race: data.RaceBeastmen, }
var BeastmenSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 53, CombatLbxFile: "figures4.lbx", CombatIndex: 64, ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 1, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 1, Resistance: 5, HitPoints: 20, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Name: "Settlers", Race: data.RaceBeastmen, }
var BeastmenSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 46, CombatLbxFile: "figures4.lbx", CombatIndex: 8, ProductionCost: 20, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 2, Defense: 2, Resistance: 5, HitPoints: 2, Name: "Spearmen", Race: data.RaceBeastmen, }
var BeastmenSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 47, CombatLbxFile: "figures4.lbx", CombatIndex: 16, Name: "Swordsmen", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 2, Resistance: 5, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceBeastmen, }
var Behemoth Unit = Unit{ LbxFile: "units2.lbx", Index: 68, Name: "Behemoth", CombatLbxFile: "figure13.lbx", CombatIndex: 64, UpkeepMana: 15, Count: 1, Realm: data.NatureMagic, MovementSpeed: 2, MeleeAttackPower: 25, Defense: 9, Resistance: 10, HitPoints: 45, Race: data.RaceFantastic, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 20)}, }
var Berserkers Unit = Unit{ LbxFile: "units1.lbx", Index: 45, CombatLbxFile: "figures4.lbx", CombatIndex: 0, Name: "Berserkers", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 7, Defense: 3, Resistance: 7, HitPoints: 3, Abilities: []Ability{MakeAbilityValue(AbilityThrown, 3)}, RequiredBuildings: []building.Building{building.BuildingArmorersGuild}, Race: data.RaceBarbarian, }
var Catapult Unit = Unit{ LbxFile: "units1.lbx", Index: 37, CombatLbxFile: "figures3.lbx", CombatIndex: 56, Name: "Catapult", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, RangedAttackPower: 10, RangedAttacks: 10, RangedAttackDamageType: DamageRangedBoulder, Defense: 2, Resistance: 4, HitPoints: 10, RequiredBuildings: []building.Building{building.BuildingMechaniciansGuild}, Abilities: []Ability{MakeAbility(AbilityWallCrusher), MakeAbility(AbilityLongRange)}, Race: data.RaceAll, }
var Centaur Unit = Unit{ LbxFile: "units1.lbx", Index: 54, CombatLbxFile: "figures4.lbx", CombatIndex: 72, Name: "Centaurs", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 3, RangedAttackPower: 2, RangedAttacks: 6, RangedAttackDamageType: DamageRangedPhysical, Defense: 3, Resistance: 5, HitPoints: 3, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceBeastmen, }
var ChaosSpawn Unit = Unit{ LbxFile: "units2.lbx", Index: 39, Name: "Chaos Spawn", CombatLbxFile: "figure11.lbx", CombatIndex: 72, Realm: data.ChaosMagic, MovementSpeed: 1, UpkeepMana: 12, Flying: true, Count: 1, MeleeAttackPower: 1, Defense: 6, Resistance: 10, HitPoints: 15, Abilities: []Ability{ MakeAbility(AbilityCauseFear), MakeAbilityValue(AbilityPoisonTouch, 4), MakeAbilityValue(AbilityDoomGaze, 4), MakeAbilityValue(AbilityDeathGaze, 4), MakeAbilityValue(AbilityStoningGaze, 4), }, Race: data.RaceFantastic, }
var Chimeras Unit = Unit{ LbxFile: "units2.lbx", Index: 40, Name: "Chimeras", CombatLbxFile: "figure11.lbx", CombatIndex: 80, Realm: data.ChaosMagic, UpkeepMana: 10, MovementSpeed: 2, Flying: true, Count: 4, MeleeAttackPower: 7, Defense: 5, Resistance: 8, HitPoints: 8, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 4), MakeAbilityValue(AbilityToHit, 10)}, Race: data.RaceFantastic, }
var Cockatrice Unit = Unit{ LbxFile: "units2.lbx", Index: 61, Name: "Cockatrice", CombatLbxFile: "figure13.lbx", CombatIndex: 8, UpkeepMana: 8, Realm: data.NatureMagic, Count: 4, MovementSpeed: 2, Flying: true, MeleeAttackPower: 4, Defense: 3, Resistance: 7, HitPoints: 3, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityStoningTouch, -3)}, Race: data.RaceFantastic, }
var Colossus Unit = Unit{ LbxFile: "units2.lbx", Index: 65, Name: "Colossus", CombatLbxFile: "figure13.lbx", CombatIndex: 40, UpkeepMana: 17, Count: 1, Realm: data.NatureMagic, MovementSpeed: 2, RangedAttackPower: 20, RangedAttacks: 2, RangedAttackDamageType: DamageRangedBoulder, MeleeAttackPower: 20, Defense: 10, Resistance: 15, HitPoints: 30, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityWallCrusher), MakeAbility(AbilityFirstStrike), }, Race: data.RaceFantastic, }
var DarkElfCavalry Unit = Unit{ LbxFile: "units1.lbx", Index: 60, CombatLbxFile: "figures5.lbx", CombatIndex: 0, Name: "Cavalry", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, RangedAttackPower: 1, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 2, Resistance: 7, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityFirstStrike)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceDarkElf, }
var DarkElfHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 59, CombatLbxFile: "figures4.lbx", CombatIndex: 112, Name: "Halberdiers", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, RangedAttackPower: 1, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 7, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceDarkElf, }
var DarkElfPriests Unit = Unit{ LbxFile: "units1.lbx", Index: 61, CombatLbxFile: "figures5.lbx", CombatIndex: 8, Name: "Priests", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 3, RangedAttackPower: 6, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 10, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbilityValue(AbilityHealingSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingParthenon}, Race: data.RaceDarkElf, }
var DarkElfSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 62, CombatLbxFile: "figures5.lbx", CombatIndex: 16, Name: "Settlers", ProductionCost: 150, UpkeepGold: 3, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 7, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceDarkElf, }
var DarkElfSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 57, CombatLbxFile: "figures4.lbx", CombatIndex: 96, Name: "Spearmen", ProductionCost: 25, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 2, Resistance: 7, HitPoints: 1, Race: data.RaceDarkElf, }
var DarkElfSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 58, CombatLbxFile: "figures4.lbx", CombatIndex: 104, Name: "Swordsmen", ProductionCost: 50, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, RangedAttackPower: 1, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 2, Resistance: 7, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceDarkElf, }
var DeathKnight Unit = Unit{ LbxFile: "units2.lbx", Index: 52, CombatLbxFile: "figure12.lbx", CombatIndex: 56, Name: "Death Knights", UpkeepMana: 8, Count: 4, Flying: true, MovementSpeed: 3, MeleeAttackPower: 9, Defense: 8, Resistance: 10, HitPoints: 8, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityLifeSteal, -4), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityFirstStrike), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var Demon Unit = Unit{ LbxFile: "units2.lbx", Index: 49, Name: "Demon", Race: data.RaceFantastic, CombatLbxFile: "figure12.lbx", CombatIndex: 32, Count: 1, Realm: data.DeathMagic, MovementSpeed: 2, Flying: true, MeleeAttackPower: 14, Defense: 6, Resistance: 7, HitPoints: 12, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityMissileImmunity), }, }
var DemonLord Unit = Unit{ LbxFile: "units2.lbx", Index: 53, CombatLbxFile: "figure12.lbx", CombatIndex: 64, Name: "Demon Lord", UpkeepMana: 15, Count: 1, Flying: true, MovementSpeed: 2, MeleeAttackPower: 20, RangedAttackPower: 10, RangedAttacks: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 10, Resistance: 12, HitPoints: 20, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityLifeSteal, -5), MakeAbilityValue(AbilitySummonDemons, 3), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityCauseFear), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var Djinn Unit = Unit{ LbxFile: "units2.lbx", Index: 75, Name: "Djinn", CombatLbxFile: "figure14.lbx", CombatIndex: 0, UpkeepMana: 17, Count: 1, Realm: data.SorceryMagic, MovementSpeed: 3, Flying: true, MeleeAttackPower: 15, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 8, Resistance: 10, HitPoints: 20, KnownSpells: []string{ "Resist Magic", "Guardian Wind", "Phantom Warriors", "Counter Magic", "Dispel Magic True", "Psionic Blast", "Confusion", "Spell Lock", "Word of Recall", "Banish", }, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityCaster, 20), MakeAbility(AbilityTeleporting), MakeAbility(AbilityWindWalking), }, Race: data.RaceFantastic, }
var DoomBat Unit = Unit{ LbxFile: "units2.lbx", Index: 41, Name: "Doom Bat", CombatLbxFile: "figure11.lbx", CombatIndex: 88, MovementSpeed: 4, UpkeepMana: 8, Realm: data.ChaosMagic, Flying: true, MeleeAttackPower: 10, Defense: 5, Resistance: 9, Count: 1, HitPoints: 20, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityImmolation)}, Race: data.RaceFantastic, }
var DoomDrake Unit = Unit{ LbxFile: "units1.lbx", Index: 74, CombatLbxFile: "figures5.lbx", CombatIndex: 112, Name: "Doom Drake", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 2, Flying: true, MovementSpeed: 3, MeleeAttackPower: 8, Defense: 3, Resistance: 9, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityScouting), MakeAbilityValue(AbilityFireBreath, 6)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceDraconian, }
var DraconianBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 69, CombatLbxFile: "figures5.lbx", CombatIndex: 72, Name: "Bowmen", ProductionCost: 45, UpkeepGold: 1, UpkeepFood: 1, Count: 6, Flying: true, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 1, RangedAttackDamageType: DamageRangedPhysical, Defense: 2, Resistance: 6, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceDraconian, }
var DraconianHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 68, CombatLbxFile: "figures5.lbx", CombatIndex: 64, Name: "Halberdiers", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 6, Flying: true, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 4, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 1)}, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceDraconian, }
var DraconianMagician Unit = Unit{ LbxFile: "units1.lbx", Index: 71, CombatLbxFile: "figures5.lbx", CombatIndex: 88, Name: "Magicians", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 4, Flying: true, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 5, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 10, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityMissileImmunity), MakeAbilityValue(AbilityFireballSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceDraconian, }
var DraconianSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 73, CombatLbxFile: "figures5.lbx", CombatIndex: 104, ProductionCost: 150, UpkeepGold: 3, UpkeepFood: 1, Count: 1, Flying: true, MovementSpeed: 1, Defense: 2, Resistance: 6, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Name: "Settlers", Race: data.RaceDraconian, }
var DraconianShaman Unit = Unit{ LbxFile: "units1.lbx", Index: 70, CombatLbxFile: "figures5.lbx", CombatIndex: 80, Name: "Shaman", ProductionCost: 75, UpkeepGold: 2, UpkeepFood: 1, Count: 4, Flying: true, MovementSpeed: 2, MeleeAttackPower: 2, RangedAttackPower: 2, RangedAttackDamageType: DamageRangedMagical, RangedAttacks: 4, Defense: 4, Resistance: 8, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify)}, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceDraconian, }
var DraconianSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 66, CombatLbxFile: "figures5.lbx", CombatIndex: 48, Name: "Spearmen", ProductionCost: 25, UpkeepFood: 1, Count: 8, Flying: true, MovementSpeed: 2, MeleeAttackPower: 1, Defense: 3, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 1)}, Race: data.RaceDraconian, }
var DraconianSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 67, CombatLbxFile: "figures5.lbx", CombatIndex: 56, Name: "Swordsmen", ProductionCost: 50, UpkeepGold: 1, UpkeepFood: 1, Count: 6, Flying: true, MovementSpeed: 2, MeleeAttackPower: 3, Defense: 3, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbilityValue(AbilityFireBreath, 1)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceDraconian, }
var DragonTurtle Unit = Unit{ LbxFile: "units2.lbx", Index: 6, Name: "Dragon Turtle", CombatLbxFile: "figures9.lbx", CombatIndex: 48, RequiredBuildings: []building.Building{building.BuildingArmorersGuild, building.BuildingStables}, Race: data.RaceLizard, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 5)}, ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 2, Swimming: true, MeleeAttackPower: 10, Defense: 8, Resistance: 8, HitPoints: 15, }
var DwarfEngineer Unit = Unit{ LbxFile: "units1.lbx", Index: 78, CombatLbxFile: "figures6.lbx", CombatIndex: 24, Name: "Engineers", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 1, Resistance: 8, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityConstruction), MakeAbility(AbilityWallCrusher), MakeAbility(AbilityMountaineer)}, RequiredBuildings: []building.Building{building.BuildingBuildersHall}, Race: data.RaceDwarf, }
var DwarfHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 77, CombatLbxFile: "figures6.lbx", CombatIndex: 16, Name: "Halberdiers", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 8, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityMountaineer)}, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceDwarf, }
var DwarfSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 82, CombatLbxFile: "figures6.lbx", CombatIndex: 56, Name: "Settlers", ProductionCost: 150, UpkeepGold: 3, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 8, HitPoints: 30, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceDwarf, }
var DwarfSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 76, CombatLbxFile: "figures6.lbx", CombatIndex: 8, Name: "Swordsmen", ProductionCost: 50, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 8, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbility(AbilityMountaineer)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceDwarf, }
var EarthElemental Unit = Unit{ LbxFile: "units2.lbx", Index: 67, Race: data.RaceFantastic, CombatLbxFile: "figure15.lbx", CombatIndex: 64, Realm: data.NatureMagic, Name: "Earth Elemental", Count: 1, MeleeAttackPower: 25, Defense: 4, MovementSpeed: 1, Resistance: 8, HitPoints: 30, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityWallCrusher), }, }
var Efreet Unit = Unit{ LbxFile: "units2.lbx", Index: 42, Name: "Efreet", CombatLbxFile: "figure11.lbx", CombatIndex: 96, MovementSpeed: 3, Realm: data.ChaosMagic, UpkeepMana: 15, Flying: true, Count: 1, KnownSpells: []string{ "Fire Bolt", "Warp Wood", "Lightning Bolt", "Shatter", "Eldritch Weapon", "Disrupt", "Fireball", "Warp Creature", "Fire Elemental", }, MeleeAttackPower: 9, RangedAttackPower: 9, RangedAttackDamageType: DamageRangedMagical, Defense: 7, Resistance: 10, HitPoints: 12, Abilities: []Ability{MakeAbility(AbilityFireImmunity), MakeAbilityValue(AbilityToHit, 20), MakeAbilityValue(AbilityCaster, 20)}, Race: data.RaceFantastic, }
var ElvenLord Unit = Unit{ LbxFile: "units1.lbx", Index: 102, CombatLbxFile: "figures7.lbx", CombatIndex: 96, Name: "ElvenLord", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 4, Resistance: 9, HitPoints: 3, Abilities: []Ability{MakeAbility(AbilityForester), MakeAbilityValue(AbilityToHit, 20), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityFirstStrike)}, RequiredBuildings: []building.Building{building.BuildingArmorersGuild}, Race: data.RaceHighElf, }
var FireElemental Unit = Unit{ LbxFile: "units2.lbx", Index: 38, Race: data.RaceFantastic, CombatLbxFile: "figure11.lbx", CombatIndex: 64, Realm: data.ChaosMagic, Name: "Fire Elemental", Count: 1, MovementSpeed: 1, MeleeAttackPower: 12, Defense: 4, Resistance: 6, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityFireImmunity), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity)}, }
var FireGiant Unit = Unit{ LbxFile: "units2.lbx", Index: 37, Name: "Fire Giant", CombatLbxFile: "figure11.lbx", CombatIndex: 56, MovementSpeed: 2, UpkeepMana: 3, Realm: data.ChaosMagic, Count: 1, MeleeAttackPower: 10, RangedAttackPower: 10, RangedAttackDamageType: DamageRangedBoulder, RangedAttacks: 2, HitPoints: 15, Defense: 5, Resistance: 7, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityMountaineer), MakeAbility(AbilityWallCrusher), MakeAbility(AbilityFireImmunity)}, Race: data.RaceFantastic, }
var FloatingIsland Unit = Unit{ LbxFile: "units2.lbx", Index: 70, CombatLbxFile: "figure13.lbx", CombatIndex: 80, Count: 1, UpkeepMana: 5, MovementSpeed: 2, Name: "Floating Island", Swimming: true, Defense: 0, Resistance: 10, HitPoints: 45, Abilities: []Ability{ MakeAbilityValue(AbilityTransport, 8), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityStoningImmunity), }, Race: data.RaceFantastic, Realm: data.SorceryMagic, }
var Galley Unit = Unit{ LbxFile: "units1.lbx", Index: 36, CombatLbxFile: "figures3.lbx", CombatIndex: 48, ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Name: "Galley", Count: 1, Swimming: true, MovementSpeed: 3, MeleeAttackPower: 8, RangedAttackPower: 2, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 4, Resistance: 6, HitPoints: 20, RequiredBuildings: []building.Building{building.BuildingShipYard}, Abilities: []Ability{MakeAbilityValue(AbilityTransport, 5)}, Race: data.RaceAll, }
var Gargoyle Unit = Unit{ LbxFile: "units2.lbx", Index: 36, Name: "Gargoyles", CombatLbxFile: "figure11.lbx", CombatIndex: 48, UpkeepMana: 5, Realm: data.ChaosMagic, MovementSpeed: 2, Flying: true, MeleeAttackPower: 4, Count: 4, Defense: 8, Resistance: 7, HitPoints: 4, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity)}, Race: data.RaceFantastic, }
var Ghoul Unit = Unit{ LbxFile: "units2.lbx", Index: 46, CombatLbxFile: "figure12.lbx", CombatIndex: 8, Name: "Ghouls", UpkeepMana: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 6, HitPoints: 3, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityPoisonTouch, 1), MakeAbility(AbilityCreateUndead), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var GiantSpider Unit = Unit{ LbxFile: "units2.lbx", Index: 63, Name: "Giant Spider", CombatLbxFile: "figure13.lbx", CombatIndex: 24, Realm: data.NatureMagic, UpkeepMana: 4, Count: 2, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 3, Resistance: 7, HitPoints: 10, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityWebSpell, 1), MakeAbilityValue(AbilityPoisonTouch, 4)}, Race: data.RaceFantastic, }
var GnollBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 86, CombatLbxFile: "figures6.lbx", CombatIndex: 88, Name: "Bowmen", ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 4, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceGnoll, }
var GnollHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 85, CombatLbxFile: "figures6.lbx", CombatIndex: 80, Name: "Halberdiers", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 6, Defense: 3, Resistance: 4, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityNegateFirstStrike)}, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceGnoll, }
var GnollSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 87, CombatLbxFile: "figures6.lbx", CombatIndex: 96, Name: "Settlers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, MeleeAttackPower: 2, Defense: 1, Resistance: 4, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceGnoll, }
var GnollSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 84, CombatLbxFile: "figures6.lbx", CombatIndex: 72, Name: "Swordsmen", ProductionCost: 20, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 5, Defense: 2, Resistance: 4, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceGnoll, }
var Golem Unit = Unit{ LbxFile: "units1.lbx", Index: 81, CombatLbxFile: "figures6.lbx", CombatIndex: 48, Name: "Golem", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 1, MovementSpeed: 1, MeleeAttackPower: 12, Defense: 8, Resistance: 15, HitPoints: 20, Abilities: []Ability{MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityDeathImmunity)}, RequiredBuildings: []building.Building{building.BuildingArmorersGuild}, Race: data.RaceDwarf, }
var Gorgon Unit = Unit{ LbxFile: "units2.lbx", Index: 66, Name: "Gorgons", CombatLbxFile: "figure13.lbx", CombatIndex: 48, UpkeepMana: 15, Count: 2, MovementSpeed: 2, Realm: data.NatureMagic, Flying: true, MeleeAttackPower: 8, Defense: 7, Resistance: 9, HitPoints: 9, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbilityValue(AbilityStoningGaze, -2), }, Race: data.RaceFantastic, }
var GreatDrake Unit = Unit{ LbxFile: "units2.lbx", Index: 44, CombatLbxFile: "figure11.lbx", CombatIndex: 112, Name: "Great Drake", Race: data.RaceFantastic, Abilities: []Ability{ MakeAbilityValue(AbilityFireBreath, 30), MakeAbilityValue(AbilityToHit, 30), }, Count: 1, Realm: data.ChaosMagic, HitPoints: 30, Flying: true, AttackSound: AttackSoundMonster2, MovementSound: MovementSoundFly, MeleeAttackPower: 30, MovementSpeed: 2, UpkeepMana: 30, Defense: 10, Resistance: 12, }
var GreatWyrm Unit = Unit{ LbxFile: "units2.lbx", Index: 69, Name: "Great Wyrm", CombatLbxFile: "figure13.lbx", CombatIndex: 72, UpkeepMana: 20, Count: 1, Realm: data.NatureMagic, MovementSpeed: 3, MeleeAttackPower: 25, Defense: 12, Resistance: 12, HitPoints: 45, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityPoisonTouch, 15), MakeAbility(AbilityMerging), }, Race: data.RaceFantastic, }
var Griffin Unit = Unit{ LbxFile: "units2.lbx", Index: 16, CombatLbxFile: "figure10.lbx", CombatIndex: 8, Name: "Griffins", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 2, Flying: true, MovementSpeed: 2, MeleeAttackPower: 9, Defense: 5, Resistance: 7, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityFirstStrike)}, RequiredBuildings: []building.Building{building.BuildingFantasticStable}, Race: data.RaceNomad, }
var GuardianSpirit Unit = Unit{ LbxFile: "units2.lbx", Index: 56, CombatLbxFile: "figure12.lbx", CombatIndex: 88, Name: "Guardian Spirit", UpkeepMana: 1, Count: 1, MovementSpeed: 1, Swimming: true, MeleeAttackPower: 10, Defense: 4, Resistance: 10, HitPoints: 10, Race: data.RaceFantastic, Abilities: []Ability{ MakeAbilityValue(AbilityResistanceToAll, 1), MakeAbility(AbilityMeld), MakeAbility(AbilityNonCorporeal), }, Realm: data.LifeMagic, }
var HalflingBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 91, CombatLbxFile: "figures7.lbx", CombatIndex: 8, Name: "Bowmen", ProductionCost: 45, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLucky)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceHalfling, }
var HalflingSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 93, CombatLbxFile: "figures7.lbx", CombatIndex: 24, ProductionCost: 90, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 6, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost), MakeAbility(AbilityLucky)}, Name: "Settlers", Race: data.RaceHalfling, }
var HalflingShamans Unit = Unit{ LbxFile: "units1.lbx", Index: 92, CombatLbxFile: "figures7.lbx", CombatIndex: 16, Name: "Shamans", ProductionCost: 75, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 2, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 8, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbility(AbilityLucky)}, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceHalfling, }
var HalflingSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 89, CombatLbxFile: "figures6.lbx", CombatIndex: 112, Name: "Spearmen", ProductionCost: 15, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 2, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLucky)}, Race: data.RaceHalfling, }
var HalflingSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 90, CombatLbxFile: "figures7.lbx", CombatIndex: 0, Name: "Swordsmen", ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 2, Defense: 2, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbility(AbilityLucky)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceHalfling, }
var Hammerhands Unit = Unit{ LbxFile: "units1.lbx", Index: 79, CombatLbxFile: "figures6.lbx", CombatIndex: 32, Name: "Hammerhands", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 8, Defense: 4, Resistance: 9, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityMountaineer)}, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Race: data.RaceDwarf, }
var HellHounds Unit = Unit{ LbxFile: "units2.lbx", Index: 35, Name: "Hell Hounds", CombatLbxFile: "figure11.lbx", CombatIndex: 40, UpkeepMana: 1, MovementSpeed: 2, Realm: data.ChaosMagic, MeleeAttackPower: 3, Count: 4, Defense: 2, Resistance: 6, HitPoints: 4, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 3), MakeAbilityValue(AbilityToHit, 10)}, Race: data.RaceFantastic, }
var HeroAerie Unit = Unit{ LbxFile: "units1.lbx", Index: 25, CombatLbxFile: "figures2.lbx", CombatIndex: 80, Name: "Aerie", Count: 1, MovementSpeed: 2, UpkeepGold: 10, MeleeAttackPower: 1, RangedAttackPower: 5, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 6, HitPoints: 5, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 10), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityIllusion)}, Race: data.RaceHero, Spells: []string{"Psionic Blast", "Vertigo", "Mind Storm"}, }
var HeroAlorra Unit = Unit{ LbxFile: "units1.lbx", Index: 30, CombatLbxFile: "figures3.lbx", CombatIndex: 0, Count: 1, UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 5, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedPhysical, RangedAttacks: 8, Defense: 6, Resistance: 6, HitPoints: 6, Abilities: []Ability{ MakeAbilityValue(AbilityCaster, 5), MakeAbility(AbilityForester), MakeAbility(AbilityBlademaster), }, Name: "Alorra", Race: data.RaceHero, Spells: []string{"Resist Magic", "Flight"}, }
var HeroAureus Unit = Unit{ LbxFile: "units1.lbx", Index: 19, CombatLbxFile: "figures2.lbx", CombatIndex: 32, Name: "Aureus", Count: 1, UpkeepGold: 4, MovementSpeed: 2, MeleeAttackPower: 6, RangedAttackPower: 6, RangedAttackDamageType: DamageRangedMagical, Defense: 6, Resistance: 6, HitPoints: 6, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5)}, Race: data.RaceHero, }
var HeroBShan Unit = Unit{ LbxFile: "units1.lbx", Index: 3, CombatLbxFile: "figures1.lbx", CombatIndex: 24, Count: 1, Name: "B'Shan", MovementSpeed: 2, MeleeAttackPower: 4, RangedAttackPower: 4, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 4, Resistance: 6, HitPoints: 6, Abilities: []Ability{MakeAbility(AbilityNoble)}, Race: data.RaceHero, }
var HeroBahgtru Unit = Unit{ LbxFile: "units1.lbx", Index: 6, CombatLbxFile: "figures1.lbx", CombatIndex: 48, Count: 1, Name: "Bahgtru", UpkeepGold: 2, MovementSpeed: 2, MeleeAttackPower: 6, Defense: 4, Resistance: 6, HitPoints: 8, Race: data.RaceHero, Abilities: []Ability{MakeAbilityValue(AbilityThrown, 3), MakeAbility(AbilityMountaineer)}, }
var HeroBrax Unit = Unit{ LbxFile: "units1.lbx", Index: 0, CombatLbxFile: "figures1.lbx", CombatIndex: 0, UpkeepGold: 2, Name: "Brax", Count: 1, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 4, Resistance: 10, HitPoints: 10, Abilities: []Ability{ MakeAbility(AbilityMountaineer), MakeAbility(AbilityConstitution), }, Race: data.RaceHero, }
var HeroDethStryke Unit = Unit{ LbxFile: "units1.lbx", Index: 26, CombatLbxFile: "figures2.lbx", CombatIndex: 88, Name: "Deth Stryke", Count: 1, UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 6, Defense: 5, Resistance: 6, HitPoints: 10, Abilities: []Ability{ MakeAbility(AbilityLeadership), MakeAbility(AbilityLegendary), MakeAbility(AbilityArmsmaster), MakeAbility(AbilityConstitution), MakeAbility(AbilityMight), }, Race: data.RaceHero, }
var HeroElana Unit = Unit{ LbxFile: "units1.lbx", Index: 27, CombatLbxFile: "figures2.lbx", CombatIndex: 96, Count: 1, MovementSpeed: 2, MeleeAttackPower: 2, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 6, HitPoints: 5, Abilities: []Ability{ MakeAbilityValue(AbilityCaster, 12.5), MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbility(AbilityArcanePower), MakeAbility(AbilitySuperPrayermaster), MakeAbility(AbilityCharmed), MakeAbility(AbilityNoble), }, Name: "Elana", Race: data.RaceHero, Spells: []string{"Dispel Evil", "Healing", "Prayer", "Holy Word"}, }
var HeroFang Unit = Unit{ LbxFile: "units1.lbx", Index: 17, CombatLbxFile: "figures2.lbx", CombatIndex: 16, Name: "Fang", Count: 1, UpkeepGold: 4, Flying: true, MovementSpeed: 3, MeleeAttackPower: 7, Defense: 5, Resistance: 6, HitPoints: 8, Abilities: []Ability{MakeAbility(AbilityMight), MakeAbilityValue(AbilityFireBreath, 5)}, Race: data.RaceHero, }
var HeroGreyfairer Unit = Unit{ LbxFile: "units1.lbx", Index: 10, CombatLbxFile: "figures1.lbx", CombatIndex: 80, UpkeepGold: 3, Name: "Greyfairer", MovementSpeed: 2, Count: 1, MeleeAttackPower: 1, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 6, HitPoints: 6, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 7.5), MakeAbilityValue(AbilityScouting, 3), MakeAbility(AbilityPurify)}, Race: data.RaceHero, Spells: []string{"Ice Bolt", "Petrify", "Web"}, }
var HeroGunther Unit = Unit{ LbxFile: "units1.lbx", Index: 1, CombatLbxFile: "figures1.lbx", CombatIndex: 8, Count: 1, UpkeepGold: 2, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 3, Resistance: 6, HitPoints: 9, Name: "Gunther", Race: data.RaceHero, Abilities: []Ability{ MakeAbilityValue(AbilityThrown, 5), MakeAbility(AbilityMight), }, }
var HeroJaer Unit = Unit{ LbxFile: "units1.lbx", Index: 15, CombatLbxFile: "figures2.lbx", CombatIndex: 0, Count: 1, UpkeepGold: 4, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 6, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 6, HitPoints: 5, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 7.5), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityWindWalking)}, Name: "Jaer", Race: data.RaceHero, Spells: []string{"Word of Recall", "Guardian Wind"}, }
var HeroMalleus Unit = Unit{ LbxFile: "units1.lbx", Index: 13, CombatLbxFile: "figures1.lbx", CombatIndex: 104, UpkeepGold: 3, Count: 1, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 10, HitPoints: 5, Name: "Malleus", Abilities: []Ability{MakeAbilityValue(AbilityCaster, 10), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityArcanePower)}, Race: data.RaceHero, Spells: []string{"Fire Bolt", "Fireball", "Fire Elemental", "Flame Strike"}, }
var HeroMarcus Unit = Unit{ LbxFile: "units1.lbx", Index: 16, CombatLbxFile: "figures2.lbx", CombatIndex: 8, Name: "Marcus", Count: 1, UpkeepGold: 4, MovementSpeed: 2, MeleeAttackPower: 6, RangedAttackPower: 5, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 5, Resistance: 6, HitPoints: 8, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5), MakeAbilityValue(AbilityScouting, 2), MakeAbility(AbilityPathfinding), MakeAbility(AbilityMight)}, Race: data.RaceHero, Spells: []string{"Resist Elements", "Stone Skin"}, }
var HeroMorgana Unit = Unit{ LbxFile: "units1.lbx", Index: 18, CombatLbxFile: "figures2.lbx", CombatIndex: 24, Name: "Morgana", Count: 1, UpkeepGold: 4, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 6, HitPoints: 5, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 10), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityCharmed)}, Race: data.RaceHero, Spells: []string{"Darkness", "Mana Leak", "Black Prayer", "Possession"}, }
var HeroMortu Unit = Unit{ LbxFile: "units1.lbx", Index: 29, CombatLbxFile: "figures2.lbx", CombatIndex: 112, Count: 1, UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 9, Defense: 5, Resistance: 6, HitPoints: 10, Abilities: []Ability{ MakeAbility(AbilityMagicImmunity), MakeAbility(AbilityFirstStrike), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityLegendary), MakeAbility(AbilityBlademaster), MakeAbility(AbilityConstitution), MakeAbility(AbilityMight), }, Name: "Mortu", Race: data.RaceHero, }
var HeroMysticX Unit = Unit{ LbxFile: "units1.lbx", Index: 24, CombatLbxFile: "figures2.lbx", CombatIndex: 72, Name: "Mystic X", UpkeepGold: 6, MovementSpeed: 2, Count: 1, MeleeAttackPower: 5, RangedAttackPower: 5, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 10, HitPoints: 8, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5)}, Race: data.RaceHero, }
var HeroRakir Unit = Unit{ LbxFile: "units1.lbx", Index: 4, CombatLbxFile: "figures1.lbx", CombatIndex: 32, Name: "Rakir", Count: 1, HitPoints: 7, MeleeAttackPower: 5, Defense: 4, UpkeepGold: 2, Resistance: 6, MovementSpeed: 2, Race: data.RaceHero, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5), MakeAbilityValue(AbilityScouting, 3), MakeAbility(AbilityForester)}, Spells: []string{"Resist Elements"}, }
var HeroRavashack Unit = Unit{ LbxFile: "units1.lbx", Index: 32, CombatLbxFile: "figures3.lbx", CombatIndex: 16, Name: "Ravashack", Count: 1, UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 7, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 6, HitPoints: 5, Abilities: []Ability{ MakeAbilityValue(AbilityLifeSteal, 0), MakeAbilityValue(AbilityCaster, 12.5), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityArcanePower), }, Race: data.RaceHero, }
var HeroReywind Unit = Unit{ LbxFile: "units1.lbx", Index: 12, CombatLbxFile: "figures1.lbx", CombatIndex: 96, UpkeepGold: 3, MovementSpeed: 2, MeleeAttackPower: 4, RangedAttackPower: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 6, HitPoints: 7, Count: 1, Name: "Reywind", Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5)}, Race: data.RaceHero, Spells: []string{"Eldritch Weapon", "Shatter", "Flame Blade"}, }
var HeroRoland Unit = Unit{ LbxFile: "units1.lbx", Index: 28, CombatLbxFile: "figures2.lbx", CombatIndex: 104, Count: 1, UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 9, Defense: 5, Resistance: 6, HitPoints: 8, Abilities: []Ability{ MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityHealer), MakeAbility(AbilityFirstStrike), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityLegendary), MakeAbility(AbilitySuperMight), MakeAbility(AbilityPrayermaster), }, Name: "Roland", Race: data.RaceHero, }
var HeroSerena Unit = Unit{ LbxFile: "units1.lbx", Index: 7, CombatLbxFile: "figures1.lbx", CombatIndex: 56, Name: "Serena", Count: 1, UpkeepGold: 2, MovementSpeed: 2, MeleeAttackPower: 3, RangedAttackPower: 6, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 7, HitPoints: 5, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbilityValue(AbilityCaster, 7.5)}, Race: data.RaceHero, }
var HeroShalla Unit = Unit{ LbxFile: "units1.lbx", Index: 22, CombatLbxFile: "figures2.lbx", CombatIndex: 56, Count: 1, UpkeepGold: 6, MovementSpeed: 2, MeleeAttackPower: 7, Defense: 4, Resistance: 6, HitPoints: 8, Abilities: []Ability{ MakeAbilityValue(AbilityThrown, 4), MakeAbility(AbilityBlademaster), MakeAbility(AbilityMight), MakeAbility(AbilityCharmed), }, Name: "Shalla", Race: data.RaceHero, }
var HeroShinBo Unit = Unit{ LbxFile: "units1.lbx", Index: 20, CombatLbxFile: "figures2.lbx", CombatIndex: 40, Count: 1, UpkeepGold: 6, MovementSpeed: 2, MeleeAttackPower: 6, Defense: 5, Resistance: 6, HitPoints: 7, Abilities: []Ability{MakeAbility(AbilityInvisibility), MakeAbility(AbilityBlademaster)}, Name: "Shin Bo", Race: data.RaceHero, }
var HeroShuri Unit = Unit{ LbxFile: "units1.lbx", Index: 8, CombatLbxFile: "figures1.lbx", CombatIndex: 64, Name: "Shuri", Count: 1, UpkeepGold: 2, MovementSpeed: 2, MeleeAttackPower: 5, RangedAttackPower: 4, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 3, Resistance: 6, HitPoints: 7, Abilities: []Ability{MakeAbility(AbilityPathfinding), MakeAbility(AbilityBlademaster)}, Race: data.RaceHero, }
var HeroSirHarold Unit = Unit{ LbxFile: "units1.lbx", Index: 31, CombatLbxFile: "figures3.lbx", CombatIndex: 8, Count: 1, MovementSpeed: 2, MeleeAttackPower: 8, Defense: 5, Resistance: 6, HitPoints: 9, Abilities: []Ability{ MakeAbility(AbilitySuperLeadership), MakeAbility(AbilitySuperLegendary), MakeAbility(AbilityConstitution), MakeAbility(AbilityNoble), }, Name: "Sir Harold", Race: data.RaceHero, }
var HeroSpyder Unit = Unit{ LbxFile: "units1.lbx", Index: 21, CombatLbxFile: "figures2.lbx", CombatIndex: 48, Count: 1, UpkeepGold: 6, MovementSpeed: 2, MeleeAttackPower: 7, Defense: 5, Resistance: 6, HitPoints: 8, Abilities: []Ability{MakeAbility(AbilityLeadership), MakeAbility(AbilitySuperLegendary)}, Name: "Spyder", Race: data.RaceHero, }
var HeroTaki Unit = Unit{ LbxFile: "units1.lbx", Index: 11, CombatLbxFile: "figures1.lbx", CombatIndex: 88, Name: "Taki", UpkeepGold: 3, MovementSpeed: 2, Count: 1, MeleeAttackPower: 6, Defense: 5, Resistance: 6, HitPoints: 6, Abilities: []Ability{MakeAbility(AbilitySuperAgility)}, Race: data.RaceHero, }
var HeroTheria Unit = Unit{ LbxFile: "units1.lbx", Index: 9, CombatLbxFile: "figures1.lbx", CombatIndex: 72, Name: "Theria", Count: 1, UpkeepGold: 2, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 5, Resistance: 6, HitPoints: 7, Abilities: []Ability{MakeAbility(AbilityAgility), MakeAbility(AbilityCharmed)}, Race: data.RaceHero, }
var HeroTorin Unit = Unit{ LbxFile: "units1.lbx", Index: 34, CombatLbxFile: "figures3.lbx", CombatIndex: 32, Name: "Torin", Count: 1, UpkeepMana: 12, MovementSpeed: 2, MeleeAttackPower: 12, Defense: 8, Resistance: 12, HitPoints: 12, Abilities: []Ability{ MakeAbilityValue(AbilityCaster, 15), MakeAbility(AbilityMagicImmunity), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilitySuperLeadership), MakeAbility(AbilityConstitution), MakeAbility(AbilitySuperMight), MakeAbility(AbilityPrayermaster), }, Race: data.RaceHero, Spells: []string{"True Light", "Healing", "Holy Armor", "Lionheart"}, }
var HeroTumu Unit = Unit{ LbxFile: "units1.lbx", Index: 14, CombatLbxFile: "figures1.lbx", CombatIndex: 112, Count: 1, UpkeepGold: 3, MovementSpeed: 2, MeleeAttackPower: 3, Defense: 5, Resistance: 6, HitPoints: 6, Abilities: []Ability{MakeAbilityValue(AbilityPoisonTouch, 5), MakeAbility(AbilityBlademaster)}, Name: "Tumu", Race: data.RaceHero, }
var HeroValana Unit = Unit{ LbxFile: "units1.lbx", Index: 5, CombatLbxFile: "figures1.lbx", CombatIndex: 40, Name: "Valana", Count: 1, UpkeepGold: 2, MeleeAttackPower: 4, Defense: 5, Resistance: 6, HitPoints: 6, MovementSpeed: 2, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 5), MakeAbility(AbilityLeadership)}, Race: data.RaceHero, Spells: []string{"Confusion", "Vertigo"}, }
var HeroWarrax Unit = Unit{ LbxFile: "units1.lbx", Index: 33, CombatLbxFile: "figures3.lbx", CombatIndex: 24, Name: "Warrax", UpkeepGold: 10, MovementSpeed: 2, MeleeAttackPower: 8, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 9, HitPoints: 8, Count: 1, Abilities: []Ability{ MakeAbilityValue(AbilityCaster, 10), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityConstitution), MakeAbility(AbilityArcanePower), }, Race: data.RaceHero, }
var HeroYramrag Unit = Unit{ LbxFile: "units1.lbx", Index: 23, CombatLbxFile: "figures2.lbx", CombatIndex: 64, Name: "Yramrag", Count: 1, UpkeepGold: 6, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 5, Resistance: 10, HitPoints: 5, Abilities: []Ability{MakeAbilityValue(AbilityCaster, 15), MakeAbility(AbilityMissileImmunity)}, Race: data.RaceHero, Spells: []string{"Lightning Bolt", "Warp Lightning", "Doom Bolt"}, }
var HeroZaldron Unit = Unit{ LbxFile: "units1.lbx", Index: 2, CombatLbxFile: "figures1.lbx", CombatIndex: 16, Name: "Zaldron", UpkeepGold: 2, Count: 1, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 6, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 6, HitPoints: 5, Abilities: []Ability{ MakeAbilityValue(AbilityCaster, 7.5), MakeAbility(AbilitySage), }, Race: data.RaceHero, Spells: []string{"Dispel Magic True", "Counter Magic"}, }
var HighElfCavalry Unit = Unit{ LbxFile: "units1.lbx", Index: 98, CombatLbxFile: "figures7.lbx", CombatIndex: 64, Name: "Cavalry", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 2, Resistance: 6, HitPoints: 3, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityForester), MakeAbility(AbilityFirstStrike)}, Race: data.RaceHighElf, }
var HighElfHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 97, CombatLbxFile: "figures7.lbx", CombatIndex: 56, Name: "Halberdiers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 6, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingArmory}, Abilities: []Ability{MakeAbility(AbilityForester), MakeAbilityValue(AbilityToHit, 10)}, Race: data.RaceHighElf, }
var HighElfMagician Unit = Unit{ LbxFile: "units1.lbx", Index: 99, CombatLbxFile: "figures7.lbx", CombatIndex: 72, Name: "Magicians", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 1, RangedAttackPower: 5, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 10, HitPoints: 1, Abilities: []Ability{ MakeAbilityValue(AbilityFireballSpell, 1), MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityForester), }, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceHighElf, }
var HighElfSettlers Unit = Unit{ LbxFile: "units1.lbx", Name: "Settlers", CombatLbxFile: "figures7.lbx", CombatIndex: 80, Count: 1, Index: 100, UpkeepGold: 2, UpkeepFood: 1, Race: data.RaceHighElf, ProductionCost: 90, MovementSpeed: 1, Resistance: 6, MeleeAttackPower: 1, HitPoints: 1, Defense: 1, Abilities: []Ability{MakeAbility(AbilityCreateOutpost), MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityForester)}, }
var HighElfSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 95, CombatLbxFile: "figures7.lbx", CombatIndex: 40, Count: 8, Name: "Spearmen", ProductionCost: 15, MeleeAttackPower: 1, Defense: 2, AttackSound: AttackSoundNormal, MovementSound: MovementSoundMarching, Resistance: 6, Abilities: []Ability{MakeAbility(AbilityForester), MakeAbilityValue(AbilityToHit, 10)}, MovementSpeed: 1, Race: data.RaceHighElf, HitPoints: 1, UpkeepFood: 1, }
var HighElfSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 96, CombatLbxFile: "figures7.lbx", CombatIndex: 48, Name: "Swordsmen", RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityForester)}, Race: data.RaceHighElf, }
var HighMenBowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 106, Race: data.RaceHighMen, Name: "Bowmen", UpkeepGold: 1, UpkeepFood: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, ProductionCost: 30, Count: 6, Defense: 1, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangeAttackIndex: 8, RangedAttacks: 8, RangeAttackSound: RangeAttackSoundArrow, RangedAttackDamageType: DamageRangedPhysical, MovementSound: MovementSoundShuffle, Resistance: 4, HitPoints: 1, CombatLbxFile: "figures8.lbx", CombatIndex: 8, }
var HighMenCavalry Unit = Unit{ LbxFile: "units1.lbx", Index: 107, Name: "Cavalry", CombatLbxFile: "figures8.lbx", CombatIndex: 16, ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 2, Resistance: 4, HitPoints: 3, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Abilities: []Ability{MakeAbility(AbilityFirstStrike)}, Race: data.RaceHighMen, }
var HighMenEngineer Unit = Unit{ LbxFile: "units1.lbx", Index: 110, CombatLbxFile: "figures8.lbx", CombatIndex: 40, Name: "Engineers", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MeleeAttackPower: 1, Defense: 1, Resistance: 4, HitPoints: 1, MovementSpeed: 1, RequiredBuildings: []building.Building{building.BuildingBuildersHall}, Abilities: []Ability{MakeAbility(AbilityConstruction), MakeAbility(AbilityWallCrusher)}, Race: data.RaceHighMen, }
var HighMenMagician Unit = Unit{ LbxFile: "units1.lbx", Index: 109, CombatLbxFile: "figures8.lbx", CombatIndex: 32, Name: "Magicians", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 5, RangedAttacks: 4, Defense: 3, Resistance: 8, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityMissileImmunity), MakeAbilityValue(AbilityFireballSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceHighMen, }
var HighMenPikemen Unit = Unit{ LbxFile: "units1.lbx", Index: 112, CombatLbxFile: "figures8.lbx", CombatIndex: 56, Name: "Pikemen", ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 5, Defense: 3, Resistance: 5, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Abilities: []Ability{MakeAbility(AbilityNegateFirstStrike), MakeAbility(AbilityArmorPiercing)}, Race: data.RaceHighMen, }
var HighMenPriest Unit = Unit{ LbxFile: "units1.lbx", Index: 108, CombatLbxFile: "figures8.lbx", CombatIndex: 24, Name: "Priests", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 3, RangedAttackPower: 4, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 7, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbilityValue(AbilityHealingSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingParthenon}, Race: data.RaceHighMen, }
var HighMenSettlers Unit = Unit{ LbxFile: "units1.lbx", Name: "Settlers", Index: 111, CombatLbxFile: "figures8.lbx", CombatIndex: 48, MovementSpeed: 1, ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, Defense: 1, Resistance: 4, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceHighMen, }
var HighMenSpearmen Unit = Unit{ LbxFile: "units1.lbx", Name: "Spearmen", Index: 104, CombatLbxFile: "figures7.lbx", CombatIndex: 112, Race: data.RaceHighMen, ProductionCost: 10, UpkeepFood: 1, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 2, Resistance: 4, HitPoints: 1, Count: 8, }
var HighMenSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 105, CombatLbxFile: "figures8.lbx", CombatIndex: 0, Name: "Swordsmen", ProductionCost: 20, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 4, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, Race: data.RaceHighMen, }
var Hydra Unit = Unit{ LbxFile: "units2.lbx", Index: 43, Name: "Hydra", CombatLbxFile: "figure11.lbx", CombatIndex: 104, UpkeepMana: 14, Count: 1, Realm: data.ChaosMagic, MovementSpeed: 1, MeleeAttackPower: 6, Defense: 4, Resistance: 11, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityRegeneration), MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityFireBreath, 5)}, Race: data.RaceFantastic, }
FIXME: hydra has 9 virtual figures, one for each head
var KlackonEngineer Unit = Unit{ LbxFile: "units1.lbx", Index: 117, CombatLbxFile: "figures8.lbx", CombatIndex: 96, Name: "Engineer", RequiredBuildings: []building.Building{building.BuildingBuildersHall}, ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 1, Resistance: 5, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityConstruction), MakeAbility(AbilityWallCrusher)}, Race: data.RaceKlackon, }
var KlackonHalberdiers Unit = Unit{ LbxFile: "units1.lbx", Index: 116, CombatLbxFile: "figures8.lbx", CombatIndex: 88, Name: "Halberdiers", RequiredBuildings: []building.Building{building.BuildingArmory}, ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 5, Resistance: 5, HitPoints: 1, Race: data.RaceKlackon, }
var KlackonSettlers Unit = Unit{ LbxFile: "units1.lbx", Index: 118, CombatLbxFile: "figures8.lbx", CombatIndex: 104, Name: "Settlers", UpkeepGold: 3, UpkeepFood: 1, Count: 1, ProductionCost: 120, MovementSpeed: 1, Defense: 1, Resistance: 5, HitPoints: 20, Race: data.RaceKlackon, }
var KlackonSpearmen Unit = Unit{ LbxFile: "units1.lbx", Index: 114, CombatLbxFile: "figures8.lbx", CombatIndex: 72, Name: "Spearmen", ProductionCost: 20, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 4, Resistance: 5, HitPoints: 1, Race: data.RaceKlackon, }
var KlackonSwordsmen Unit = Unit{ LbxFile: "units1.lbx", Index: 115, Name: "Swordsmen", CombatLbxFile: "figures8.lbx", CombatIndex: 80, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 4, Resistance: 5, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, Race: data.RaceKlackon, }
var LizardHalberdiers Unit = Unit{ LbxFile: "units2.lbx", Index: 2, Name: "Halberdiers", CombatLbxFile: "figures9.lbx", CombatIndex: 16, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceLizard, Abilities: []Ability{MakeAbility(AbilityNegateFirstStrike)}, ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, MovementSpeed: 1, Swimming: true, MeleeAttackPower: 4, Defense: 4, Resistance: 4, HitPoints: 2, Count: 6, }
var LizardJavelineers Unit = Unit{ LbxFile: "units2.lbx", Index: 3, Name: "Javelineers", CombatLbxFile: "figures9.lbx", CombatIndex: 24, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Race: data.RaceLizard, RangedAttacks: 6, ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MeleeAttackPower: 4, RangedAttackPower: 3, RangedAttackDamageType: DamageRangedPhysical, Defense: 4, Resistance: 5, HitPoints: 2, MovementSpeed: 1, Swimming: true, }
var LizardSettlers Unit = Unit{ LbxFile: "units2.lbx", Index: 5, Name: "Settlers", CombatLbxFile: "figures9.lbx", CombatIndex: 40, MovementSpeed: 1, Defense: 2, Resistance: 4, HitPoints: 20, Count: 1, ProductionCost: 120, Swimming: true, UpkeepGold: 3, UpkeepFood: 1, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceLizard, }
var LizardShamans Unit = Unit{ LbxFile: "units2.lbx", Index: 4, Name: "Shamans", CombatLbxFile: "figures9.lbx", CombatIndex: 32, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceLizard, RangedAttacks: 4, MeleeAttackPower: 2, RangedAttackPower: 2, RangedAttackDamageType: DamageRangedMagical, ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, Swimming: true, Defense: 3, Resistance: 6, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify)}, }
var LizardSpearmen Unit = Unit{ LbxFile: "units2.lbx", Index: 0, Name: "Spearmen", CombatLbxFile: "figures9.lbx", CombatIndex: 0, Race: data.RaceLizard, UpkeepFood: 1, ProductionCost: 10, Count: 8, MovementSpeed: 1, Swimming: true, MeleeAttackPower: 1, Defense: 3, Resistance: 4, HitPoints: 2, }
var LizardSwordsmen Unit = Unit{ LbxFile: "units2.lbx", Index: 1, Name: "Swordsmen", CombatLbxFile: "figures9.lbx", CombatIndex: 8, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, ProductionCost: 20, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, Swimming: true, MeleeAttackPower: 3, Defense: 3, Resistance: 4, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, Race: data.RaceLizard, }
var Longbowmen Unit = Unit{ LbxFile: "units1.lbx", Index: 101, CombatLbxFile: "figures7.lbx", CombatIndex: 88, Name: "Longbowmen", ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 3, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 2, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityForester), MakeAbilityValue(AbilityToHit, 10)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceHighElf, }
var MagicSpirit Unit = Unit{ LbxFile: "units2.lbx", Index: 34, CombatLbxFile: "figure11.lbx", CombatIndex: 32, Name: "Magic Spirit", Realm: data.ArcaneMagic, UpkeepMana: 1, MovementSpeed: 1, Swimming: true, Count: 1, MeleeAttackPower: 5, Defense: 4, Resistance: 8, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityMeld), MakeAbility(AbilityNonCorporeal)}, Race: data.RaceFantastic, }
var Manticore Unit = Unit{ LbxFile: "units1.lbx", Index: 55, CombatLbxFile: "figures4.lbx", CombatIndex: 80, Name: "Manticores", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 2, Flying: true, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 3, Resistance: 6, HitPoints: 7, Abilities: []Ability{MakeAbility(AbilityScouting), MakeAbilityValue(AbilityPoisonTouch, 6)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingAnimistsGuild}, Race: data.RaceBeastmen, }
var Minotaur Unit = Unit{ LbxFile: "units1.lbx", Index: 56, CombatLbxFile: "figures4.lbx", CombatIndex: 88, Name: "Minotaurs", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 2, MovementSpeed: 1, MeleeAttackPower: 12, Defense: 4, Resistance: 7, HitPoints: 12, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 20), MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingArmorersGuild}, Race: data.RaceBeastmen, }
var Nagas Unit = Unit{ LbxFile: "units2.lbx", Index: 77, Name: "Nagas", CombatLbxFile: "figure14.lbx", CombatIndex: 16, UpkeepMana: 2, Realm: data.SorceryMagic, MovementSpeed: 1, Count: 2, MeleeAttackPower: 4, Defense: 3, Resistance: 7, HitPoints: 6, Race: data.RaceFantastic, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityPoisonTouch, 4), MakeAbility(AbilityFirstStrike), }, }
var NightStalker Unit = Unit{ LbxFile: "units2.lbx", Index: 47, Name: "Night Stalker", CombatLbxFile: "figure12.lbx", CombatIndex: 16, UpkeepMana: 1, Count: 1, MovementSpeed: 2, MeleeAttackPower: 7, Defense: 3, Resistance: 8, HitPoints: 10, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbilityValue(AbilityDeathGaze, 2), MakeAbility(AbilityInvisibility), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var Nightblades Unit = Unit{ LbxFile: "units1.lbx", Index: 63, CombatLbxFile: "figures5.lbx", CombatIndex: 24, Name: "Nightblades", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 7, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityInvisibility), MakeAbilityValue(AbilityPoisonTouch, 1)}, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Race: data.RaceDarkElf, }
var Nightmares Unit = Unit{ LbxFile: "units1.lbx", Index: 65, CombatLbxFile: "figures5.lbx", CombatIndex: 40, Name: "Nightmares", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 2, MovementSpeed: 3, Flying: true, MeleeAttackPower: 8, RangedAttackPower: 5, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 8, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityScouting)}, RequiredBuildings: []building.Building{building.BuildingFantasticStable}, Race: data.RaceDarkElf, }
var NomadBowmen Unit = Unit{ LbxFile: "units2.lbx", Index: 9, CombatLbxFile: "figures9.lbx", CombatIndex: 72, Name: "Bowmen", ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 4, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceNomad, }
var NomadHorsebowemen Unit = Unit{ LbxFile: "units2.lbx", Index: 13, CombatLbxFile: "figures9.lbx", CombatIndex: 104, Name: "Horsebowmen", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, RangedAttackPower: 2, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 2, Resistance: 4, HitPoints: 3, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceNomad, }
var NomadPikemen Unit = Unit{ LbxFile: "units2.lbx", Index: 14, CombatLbxFile: "figures9.lbx", CombatIndex: 112, Name: "Pikemen", ProductionCost: 80, UpkeepGold: 2, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 5, Defense: 3, Resistance: 5, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityNegateFirstStrike), MakeAbility(AbilityArmorPiercing)}, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Race: data.RaceNomad, }
var NomadPriest Unit = Unit{ LbxFile: "units2.lbx", Index: 10, CombatLbxFile: "figures9.lbx", CombatIndex: 80, Name: "Priests", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 3, RangedAttackPower: 4, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 7, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbilityValue(AbilityHealingSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingParthenon}, Race: data.RaceNomad, }
var NomadRangers Unit = Unit{ LbxFile: "units2.lbx", Index: 15, CombatLbxFile: "figure10.lbx", CombatIndex: 0, Name: "Rangers", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, RangedAttackPower: 3, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 4, Resistance: 6, HitPoints: 2, Abilities: []Ability{MakeAbility(AbilityPathfinding)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingAnimistsGuild}, Race: data.RaceNomad, }
var NomadSettlers Unit = Unit{ LbxFile: "units2.lbx", Index: 12, CombatLbxFile: "figures9.lbx", CombatIndex: 96, Name: "Settlers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 4, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceNomad, }
var NomadSwordsmen Unit = Unit{ LbxFile: "units2.lbx", Index: 8, CombatLbxFile: "figures9.lbx", CombatIndex: 64, Name: "Swordsmen", ProductionCost: 20, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 4, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceNomad, }
var OrcBowmen Unit = Unit{ LbxFile: "units2.lbx", Index: 20, CombatLbxFile: "figure10.lbx", CombatIndex: 40, Name: "Bowmen", ProductionCost: 30, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 1, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 1, Resistance: 4, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSawmill}, Race: data.RaceOrc, }
var OrcCavalry Unit = Unit{ LbxFile: "units2.lbx", Index: 21, CombatLbxFile: "figure10.lbx", CombatIndex: 48, Name: "Calvary", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 4, Defense: 2, Resistance: 4, HitPoints: 3, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceOrc, }
var OrcEngineers Unit = Unit{ LbxFile: "units2.lbx", Index: 24, CombatLbxFile: "figure10.lbx", CombatIndex: 72, Name: "Engineers", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 1, Defense: 1, Resistance: 4, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityConstruction), MakeAbility(AbilityWallCrusher)}, RequiredBuildings: []building.Building{building.BuildingBuildersHall}, Race: data.RaceOrc, }
var OrcHalberdiers Unit = Unit{ LbxFile: "units2.lbx", Index: 19, CombatLbxFile: "figure10.lbx", CombatIndex: 32, Name: "Halberdiers", ProductionCost: 40, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 4, HitPoints: 1, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceOrc, }
var OrcMagicians Unit = Unit{ LbxFile: "units2.lbx", Index: 23, CombatLbxFile: "figure10.lbx", CombatIndex: 64, Name: "Magicians", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 5, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 8, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityMissileImmunity), MakeAbilityValue(AbilityFireballSpell, 1)}, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceOrc, }
var OrcSettlers Unit = Unit{ LbxFile: "units2.lbx", Index: 25, CombatLbxFile: "figure10.lbx", CombatIndex: 80, Name: "Settlers", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 4, HitPoints: 10, Abilities: []Ability{MakeAbility(AbilityCreateOutpost)}, Race: data.RaceOrc, }
var OrcShamans Unit = Unit{ LbxFile: "units2.lbx", Index: 22, CombatLbxFile: "figure10.lbx", CombatIndex: 56, Name: "Shamans", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 2, RangedAttackPower: 2, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify)}, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceOrc, }
var OrcSwordsmen Unit = Unit{ LbxFile: "units2.lbx", Index: 18, CombatLbxFile: "figure10.lbx", CombatIndex: 24, Name: "Swordsmen", ProductionCost: 20, UpkeepGold: 1, UpkeepFood: 1, Count: 6, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 4, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLargeShield)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceOrc, }
var Paladin Unit = Unit{ LbxFile: "units1.lbx", Index: 113, CombatLbxFile: "figures8.lbx", CombatIndex: 64, Name: "Paladins", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 6, Defense: 5, Resistance: 8, HitPoints: 4, RequiredBuildings: []building.Building{building.BuildingArmorersGuild, building.BuildingCathedral}, Abilities: []Ability{ MakeAbility(AbilityMagicImmunity), MakeAbilityValue(AbilityHolyBonus, 1), MakeAbility(AbilityArmorPiercing), MakeAbility(AbilityFirstStrike), }, Race: data.RaceHighMen, }
var Pegasai Unit = Unit{ LbxFile: "units1.lbx", Index: 103, CombatLbxFile: "figures7.lbx", CombatIndex: 104, Name: "Pegasai", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 2, Flying: true, MovementSpeed: 3, MeleeAttackPower: 5, RangedAttackPower: 3, RangedAttacks: 8, RangedAttackDamageType: DamageRangedPhysical, Defense: 4, Resistance: 8, HitPoints: 5, RequiredBuildings: []building.Building{building.BuildingFantasticStable}, Race: data.RaceHighElf, }
var PhantomBeast Unit = Unit{ LbxFile: "units2.lbx", Index: 71, Race: data.RaceFantastic, CombatLbxFile: "figure13.lbx", CombatIndex: 88, Realm: data.SorceryMagic, Name: "Phantom Beast", Count: 1, MeleeAttackPower: 18, MovementSpeed: 2, Resistance: 8, HitPoints: 20, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityNonCorporeal), MakeAbility(AbilityIllusion), }, }
var PhantomWarrior Unit = Unit{ LbxFile: "units2.lbx", Index: 72, CombatLbxFile: "figure13.lbx", CombatIndex: 96, Realm: data.SorceryMagic, Name: "Phantom Warriors", MovementSpeed: 1, Count: 6, MeleeAttackPower: 3, HitPoints: 1, Resistance: 6, Abilities: []Ability{ MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityNonCorporeal), MakeAbility(AbilityIllusion), }, Race: data.RaceFantastic, }
var ShadowDemon Unit = Unit{ LbxFile: "units2.lbx", Index: 51, CombatLbxFile: "figure12.lbx", CombatIndex: 48, Name: "Shadow Demons", UpkeepMana: 7, Count: 4, Flying: true, MovementSpeed: 1, MeleeAttackPower: 5, RangedAttackPower: 4, RangedAttacks: 8, RangedAttackDamageType: DamageRangedMagical, Defense: 4, Resistance: 8, HitPoints: 5, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbility(AbilityPlaneShift), MakeAbility(AbilityNonCorporeal), MakeAbility(AbilityRegeneration), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var Skeleton Unit = Unit{ LbxFile: "units2.lbx", Index: 45, CombatLbxFile: "figure12.lbx", CombatIndex: 0, Name: "Skeletons", UpkeepMana: 1, Count: 6, MovementSpeed: 3, MeleeAttackPower: 3, Defense: 4, Resistance: 5, HitPoints: 1, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityMissileImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Race: data.RaceFantastic, Realm: data.DeathMagic, }
var SkyDrake Unit = Unit{ LbxFile: "units2.lbx", Index: 76, Name: "SkyDrake", Realm: data.SorceryMagic, CombatLbxFile: "figure14.lbx", CombatIndex: 8, UpkeepMana: 25, Count: 1, MovementSpeed: 4, Flying: true, MeleeAttackPower: 20, Defense: 10, Resistance: 14, HitPoints: 25, Race: data.RaceFantastic, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 30), MakeAbilityValue(AbilityLightningBreath, 20), MakeAbility(AbilityMagicImmunity), MakeAbility(AbilityIllusionsImmunity), }, }
var Slingers Unit = Unit{ LbxFile: "units1.lbx", Index: 94, CombatLbxFile: "figures7.lbx", CombatIndex: 32, Name: "Slingers", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 8, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackPower: 2, RangedAttacks: 6, RangedAttackDamageType: DamageRangedBoulder, Defense: 2, Resistance: 6, HitPoints: 1, Abilities: []Ability{MakeAbility(AbilityLucky)}, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceHalfling, }
var Sprite Unit = Unit{ LbxFile: "units2.lbx", Name: "Sprites", Index: 60, CombatLbxFile: "figure15.lbx", CombatIndex: 8, Count: 4, UpkeepMana: 3, Realm: data.NatureMagic, MeleeAttackPower: 4, RangedAttacks: 4, RangedAttackPower: 3, RangedAttackDamageType: DamageRangedMagical, RangeAttackIndex: 88, MovementSpeed: 2, Defense: 2, Resistance: 8, HitPoints: 1, Flying: true, Abilities: []Ability{MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityForester)}, Race: data.RaceFantastic, }
var StagBeetle Unit = Unit{ LbxFile: "units1.lbx", Index: 119, CombatLbxFile: "figures8.lbx", CombatIndex: 112, Name: "Stag Beetle", RequiredBuildings: []building.Building{building.BuildingArmorersGuild, building.BuildingFantasticStable}, ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 1, MovementSpeed: 2, MeleeAttackPower: 15, Defense: 7, Resistance: 6, HitPoints: 20, Abilities: []Ability{MakeAbilityValue(AbilityFireBreath, 5)}, Race: data.RaceKlackon, }
var SteamCannon Unit = Unit{ LbxFile: "units1.lbx", Index: 80, CombatLbxFile: "figures6.lbx", CombatIndex: 40, Name: "Steam Cannon", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 1, MovementSpeed: 1, RangedAttackPower: 12, RangedAttacks: 10, RangedAttackDamageType: DamageRangedBoulder, Defense: 2, Resistance: 9, HitPoints: 12, RequiredBuildings: []building.Building{building.BuildingMinersGuild}, Race: data.RaceDwarf, }
var StoneGiant Unit = Unit{ LbxFile: "units2.lbx", Index: 64, Name: "Stone Giant", CombatLbxFile: "figure13.lbx", CombatIndex: 32, UpkeepMana: 9, Count: 1, Realm: data.NatureMagic, MovementSpeed: 2, MeleeAttackPower: 15, RangedAttackPower: 15, RangedAttackDamageType: DamageRangedBoulder, RangedAttacks: 2, Defense: 8, Resistance: 9, HitPoints: 20, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbility(AbilityMountaineer), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityStoningImmunity), MakeAbility(AbilityWallCrusher), }, Race: data.RaceFantastic, }
var StormGiant Unit = Unit{ LbxFile: "units2.lbx", Index: 73, Name: "Storm Giant", CombatLbxFile: "figure13.lbx", CombatIndex: 104, UpkeepMana: 10, Count: 1, Realm: data.SorceryMagic, MovementSpeed: 2, MeleeAttackPower: 12, RangedAttackPower: 10, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 7, Resistance: 9, HitPoints: 20, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbility(AbilityWallCrusher), MakeAbility(AbilityArmorPiercing), }, Race: data.RaceFantastic, }
var Trireme Unit = Unit{ LbxFile: "units1.lbx", Index: 35, CombatLbxFile: "figures3.lbx", CombatIndex: 40, Name: "Trireme", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 1, Swimming: true, MovementSpeed: 2, MeleeAttackPower: 6, Defense: 4, Resistance: 4, HitPoints: 10, Abilities: []Ability{MakeAbilityValue(AbilityTransport, 2)}, RequiredBuildings: []building.Building{building.BuildingShipwrightsGuild}, Race: data.RaceAll, }
var TrollHalberdiers Unit = Unit{ LbxFile: "units2.lbx", Index: 29, CombatLbxFile: "figure10.lbx", CombatIndex: 112, Name: "Halberdiers", ProductionCost: 120, UpkeepGold: 3, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 6, Defense: 3, Resistance: 7, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityNegateFirstStrike), MakeAbility(AbilityRegeneration)}, RequiredBuildings: []building.Building{building.BuildingArmory}, Race: data.RaceTroll, }
var TrollSettlers Unit = Unit{ LbxFile: "units2.lbx", Index: 31, CombatLbxFile: "figure11.lbx", CombatIndex: 8, Name: "Settlers", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 1, MovementSpeed: 1, Defense: 1, Resistance: 7, HitPoints: 40, Abilities: []Ability{MakeAbility(AbilityCreateOutpost), MakeAbility(AbilityRegeneration)}, Race: data.RaceTroll, }
var TrollShamans Unit = Unit{ LbxFile: "units2.lbx", Index: 30, CombatLbxFile: "figure11.lbx", CombatIndex: 0, Name: "Shamans", ProductionCost: 180, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 4, RangedAttackPower: 2, RangedAttacks: 4, RangedAttackDamageType: DamageRangedMagical, Defense: 3, Resistance: 8, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityHealer), MakeAbility(AbilityPurify), MakeAbility(AbilityRegeneration)}, RequiredBuildings: []building.Building{building.BuildingShrine}, Race: data.RaceTroll, }
var TrollSpearmen Unit = Unit{ LbxFile: "units2.lbx", Index: 27, CombatLbxFile: "figure10.lbx", CombatIndex: 96, Name: "Spearmen", ProductionCost: 30, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 3, Defense: 2, Resistance: 7, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityRegeneration)}, Race: data.RaceTroll, }
var TrollSwordsmen Unit = Unit{ LbxFile: "units2.lbx", Index: 28, CombatLbxFile: "figure10.lbx", CombatIndex: 104, Name: "Swordsmen", ProductionCost: 60, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 5, Defense: 2, Resistance: 7, HitPoints: 4, Abilities: []Ability{MakeAbility(AbilityLargeShield), MakeAbility(AbilityRegeneration)}, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingSmithy}, Race: data.RaceTroll, }
var Unicorn Unit = Unit{ LbxFile: "units2.lbx", Index: 55, CombatLbxFile: "figure12.lbx", CombatIndex: 80, Name: "Unicorns", UpkeepMana: 5, Count: 4, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 3, Resistance: 7, HitPoints: 6, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbilityValue(AbilityResistanceToAll, 2), MakeAbility(AbilityTeleporting), MakeAbility(AbilityPoisonImmunity), }, Race: data.RaceFantastic, Realm: data.LifeMagic, }
var WarBear Unit = Unit{ LbxFile: "units2.lbx", Name: "War Bears", Index: 59, CombatLbxFile: "figure15.lbx", CombatIndex: 0, Count: 2, UpkeepMana: 2, Realm: data.NatureMagic, MeleeAttackPower: 7, Defense: 3, Resistance: 6, HitPoints: 8, MovementSpeed: 2, Abilities: []Ability{MakeAbility(AbilityForester)}, Race: data.RaceFantastic, }
var WarMammoths Unit = Unit{ LbxFile: "units2.lbx", Index: 33, CombatLbxFile: "figure11.lbx", CombatIndex: 24, Name: "War Mammoths", ProductionCost: 240, UpkeepGold: 5, UpkeepFood: 1, Count: 2, MovementSpeed: 2, MeleeAttackPower: 10, Defense: 6, Resistance: 9, HitPoints: 12, Abilities: []Ability{MakeAbility(AbilityWallCrusher), MakeAbility(AbilityFirstStrike)}, RequiredBuildings: []building.Building{building.BuildingArmorersGuild, building.BuildingStables}, Race: data.RaceTroll, }
var WarTrolls Unit = Unit{ LbxFile: "units2.lbx", Index: 32, CombatLbxFile: "figure11.lbx", CombatIndex: 16, Name: "War Trolls", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 4, MovementSpeed: 2, MeleeAttackPower: 8, Defense: 4, Resistance: 8, HitPoints: 5, Abilities: []Ability{MakeAbility(AbilityRegeneration)}, RequiredBuildings: []building.Building{building.BuildingFightersGuild}, Race: data.RaceTroll, }
var Warlocks Unit = Unit{ LbxFile: "units1.lbx", Index: 64, CombatLbxFile: "figures5.lbx", CombatIndex: 32, Name: "Warlocks", ProductionCost: 240, UpkeepGold: 5, UpkeepFood: 1, Count: 4, MovementSpeed: 1, MeleeAttackPower: 1, RangedAttackDamageType: DamageRangedMagical, RangeAttackIndex: 16, RangedAttackPower: 7, RangedAttacks: 4, RangeAttackSound: RangeAttackSoundFireball, Defense: 4, Resistance: 9, HitPoints: 1, MovementSound: MovementSoundShuffle, Abilities: []Ability{MakeAbilityValue(AbilityDoomBoltSpell, 1), MakeAbility(AbilityMissileImmunity)}, RequiredBuildings: []building.Building{building.BuildingWizardsGuild}, Race: data.RaceDarkElf, }
var Warship Unit = Unit{ LbxFile: "units1.lbx", Index: 38, CombatLbxFile: "figures3.lbx", CombatIndex: 64, Name: "Warship", ProductionCost: 160, UpkeepGold: 4, UpkeepFood: 1, Count: 1, MovementSpeed: 4, Swimming: true, MeleeAttackPower: 10, RangedAttackPower: 10, RangedAttacks: 99, RangedAttackDamageType: DamageRangedBoulder, Defense: 5, Resistance: 7, HitPoints: 30, Abilities: []Ability{MakeAbilityValue(AbilityTransport, 3), MakeAbility(AbilityLongRange)}, RequiredBuildings: []building.Building{building.BuildingMaritimeGuild}, Race: data.RaceAll, }
var WereWolf Unit = Unit{ LbxFile: "units2.lbx", Index: 48, CombatLbxFile: "figure12.lbx", CombatIndex: 24, Name: "WereWolves", UpkeepMana: 5, Count: 6, MovementSpeed: 2, MeleeAttackPower: 5, Defense: 1, Resistance: 6, HitPoints: 5, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityRegeneration), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityWeaponImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var WolfRiders Unit = Unit{ LbxFile: "units1.lbx", Index: 88, CombatLbxFile: "figures6.lbx", CombatIndex: 104, Name: "Wolf Riders", ProductionCost: 100, UpkeepGold: 2, UpkeepFood: 1, Count: 4, MovementSpeed: 3, MeleeAttackPower: 7, Defense: 3, Resistance: 4, HitPoints: 5, RequiredBuildings: []building.Building{building.BuildingBarracks, building.BuildingStables}, Race: data.RaceGnoll, }
var Wraith Unit = Unit{ LbxFile: "units2.lbx", Index: 50, CombatLbxFile: "figure12.lbx", CombatIndex: 40, Name: "Wraiths", UpkeepMana: 5, Count: 4, Flying: true, MovementSpeed: 2, MeleeAttackPower: 7, Defense: 6, Resistance: 8, HitPoints: 8, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 20), MakeAbilityValue(AbilityLifeSteal, -3), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), MakeAbility(AbilityWeaponImmunity), MakeAbility(AbilityNonCorporeal), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
var WyvernRiders Unit = Unit{ LbxFile: "units2.lbx", Index: 26, CombatLbxFile: "figure10.lbx", CombatIndex: 88, Name: "Wyvern Riders", ProductionCost: 200, UpkeepGold: 4, UpkeepFood: 1, Count: 2, Flying: true, MovementSpeed: 3, MeleeAttackPower: 5, Defense: 5, Resistance: 7, HitPoints: 10, Abilities: []Ability{MakeAbilityValue(AbilityPoisonTouch, 6)}, RequiredBuildings: []building.Building{building.BuildingFantasticStable}, Race: data.RaceOrc, }
var Zombie Unit = Unit{ LbxFile: "units2.lbx", Index: 54, CombatLbxFile: "figure12.lbx", CombatIndex: 72, Name: "Zombies", Count: 6, MovementSpeed: 1, MeleeAttackPower: 4, Defense: 3, Resistance: 3, HitPoints: 3, Abilities: []Ability{ MakeAbilityValue(AbilityToHit, 10), MakeAbility(AbilityPoisonImmunity), MakeAbility(AbilityIllusionsImmunity), MakeAbility(AbilityColdImmunity), MakeAbility(AbilityDeathImmunity), }, Realm: data.DeathMagic, Race: data.RaceFantastic, }
func ChooseRandomUnit ¶
func UnitsByRace ¶
func (*Unit) GetAbilities ¶
func (*Unit) GetBaseDefense ¶
func (*Unit) GetBaseHitPoints ¶
func (*Unit) GetBaseMeleeAttackPower ¶
func (*Unit) GetBaseRangedAttackPower ¶
func (*Unit) GetBaseResistance ¶
func (*Unit) GetCombatIndex ¶
func (*Unit) GetCombatLbxFile ¶
func (*Unit) GetCombatRangeIndex ¶
func (*Unit) GetDefense ¶
func (*Unit) GetHitPoints ¶
func (*Unit) GetMaxHealth ¶
maximum health is the number of figures * the number of hit points per figure
func (*Unit) GetMeleeAttackPower ¶
func (*Unit) GetMovementSpeed ¶
func (*Unit) GetProductionCost ¶
func (*Unit) GetRangedAttackDamageType ¶
func (*Unit) GetRangedAttackPower ¶
func (*Unit) GetResistance ¶
func (*Unit) GetUpkeepFood ¶
func (*Unit) GetUpkeepGold ¶
func (*Unit) GetUpkeepMana ¶
func (*Unit) HasAbility ¶
func (unit *Unit) HasAbility(ability AbilityType) bool
func (*Unit) IsSettlers ¶
Click to show internal directories.
Click to hide internal directories.