public void CreateUnit(Vector2 myCoordinate, Texture2DFramed myFramedTexture, UnitData myUnitData) { HexComponent hexComp = GetHex(myCoordinate); if (hexComp.GetUnit() == null) { SpriteComponent hexSprite = GetHex(myCoordinate)._parent.GetDrawable("SpriteComponent") as SpriteComponent; Entity unitEntity = new Entity(15, State.ScreenState.SKIRMISH); AnimatedSpriteComponent unitSprite = new AnimatedSpriteComponent(true, hexSprite.GetCenterPosition(), myFramedTexture); unitEntity.AddComponent(unitSprite); UnitComponent unitComp = new UnitComponent(GetHex(myCoordinate), true); unitComp.SetUnitData(myUnitData); unitEntity.AddComponent(unitComp); EntityManager.AddEntity(unitEntity); alliedUnitList.Add(unitEntity); totalUnitList.Add(unitEntity); hexComp.SetUnit(unitComp); UpdateVisibilityAllies(); } else { throw new Exception("There is already a unit where you are trying to create one."); } }
public int MagicalDamageAgainst(UnitData enemy) { int damage = 0; int weaponBonus = 0; if (equippedWeapon != null) { weaponBonus = equippedWeapon.Damage(); } damage += weaponBonus + attributes["magic"] - enemy.attributes["resistance"]; return damage; }
public int PhysicalDamageAgainst(UnitData enemy) { int damage = 0; int weaponBonus = 0; if (equippedWeapon != null) { weaponBonus = equippedWeapon.Damage(); } damage += weaponBonus + attributes["strength"] - enemy.attributes["defense"]; return damage; }
public void SetUnitData(UnitData unitData) { this.unitData = unitData; InitializeUnitData(); }