public Entity(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense) { ClanInfo = myClan; Id = stats.Id; Health = stats.Health; _maxHealth = Health; Damage = stats.Damage; Defence = stats.Defence; _visionSense = visionSense; }
public Entity Create(EntityId entityId, IClanInfo memberOfClan) { switch (entityId) { case EntityId.Headquarter: return(new Headquarter(memberOfClan, SpawnStatsFactory.Create(entityId), _defaultVisionSense, Behaviour.HEADQUARTER_SPAWN_TRESHOLD)); case EntityId.Outpost: return(new Outpost(memberOfClan, SpawnStatsFactory.Create(entityId), _defaultVisionSense, Behaviour.OUTPOST_SPAWN_TRESHOLD)); case EntityId.Soldier: return(new Soldier(memberOfClan, SpawnStatsFactory.Create(entityId), _defaultVisionSense)); case EntityId.Builder: return(new Builder(memberOfClan, SpawnStatsFactory.Create(entityId), _builderVisionSense)); default: throw new System.Exception("Missing entity in EntityFactory"); } }
public Soldier(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense) : base(myClan, stats, visionSense) { _willingnessToAttactk = _rnd.Next(Behaviour.SOLDIER_MINIMAL_WILLIGNESS_TO_ATTACK, 100); }
public Outpost(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense, int spawnTreshold) : base(myClan, stats, visionSense, spawnTreshold) { // Empty }
private Entity AddEntityAndChangeTerrain(int x, int y, EntityId entity, IClanInfo clanInfo) { SetTerrain(x, y, TerrainId.Grass); return(AddEntity(x, y, entity, clanInfo)); }
private Entity AddEntity(int x, int y, EntityId entity, IClanInfo clanInfo) { _map.Tiles[x, y].SetAiEntity(_entityFactory.Create(entity, clanInfo)); return(_map.Tiles[x, y].AiEntity); }
private bool IsAlliedHeadquarter(IClanInfo ownerClan, Tile targetTile) => IsAlly(ownerClan, targetTile) && ((targetTile.AiEntity.Id == EntityId.Headquarter) || (targetTile.AiEntity.Id == EntityId.Outpost));
public Headquarter(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense, int spawnTreshold) : base(myClan, stats, visionSense) { _spawnTreshold = spawnTreshold; InitializePossibleSpawns(); }
public Builder(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense) : base(myClan, stats, visionSense) { // Empty }
protected bool IsAlly(IClanInfo ownerClan, Tile target) => target.IsOccupied && (target.AiEntity.ClanInfo.Id == ownerClan.Id);