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);
 }
Beispiel #4
0
 public Outpost(IClanInfo myClan, SpawnStats stats, IVisionSense visionSense, int spawnTreshold) : base(myClan, stats, visionSense, spawnTreshold)
 {
     // Empty
 }
Beispiel #5
0
 private Entity AddEntityAndChangeTerrain(int x, int y, EntityId entity, IClanInfo clanInfo)
 {
     SetTerrain(x, y, TerrainId.Grass);
     return(AddEntity(x, y, entity, clanInfo));
 }
Beispiel #6
0
 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
 }
Beispiel #10
0
 protected bool IsAlly(IClanInfo ownerClan, Tile target) => target.IsOccupied && (target.AiEntity.ClanInfo.Id == ownerClan.Id);