public virtual void WeaponAttack(GameObject g) { EntityResources ER = g.GetComponent <EntityResources>(); if (ER) { ER.HealthRemove(Damage); } }
public override void enable() { // Give resources back IGameEntity entity = _gameObject.GetComponent <IGameEntity>(); EntityResources resources = entity.info.buildingAttributes.sellValue; if (resources != null) { BasePlayer player = BasePlayer.getOwner(entity); ResourcesPlacer.get(player).Collect(WorldResources.Type.FOOD, resources.food); ResourcesPlacer.get(player).Collect(WorldResources.Type.WOOD, resources.wood); ResourcesPlacer.get(player).Collect(WorldResources.Type.METAL, resources.metal); } else { Debug.LogWarning(entity + " Have no sellValue on JSON"); } BasePlayer.player.selection.deselectBuilding(); _gameObject.GetComponent <IGameEntity>().Destroy(true); _enabled = true; base.enable(); }
private void OnCreated(System.Object obj) { IGameEntity entity = (IGameEntity)obj; EntityResources res = entity.info.resources; Dictionary <WorldResources.Type, float> d = new Dictionary <WorldResources.Type, float>() { { WorldResources.Type.FOOD, res.food }, { WorldResources.Type.WOOD, res.wood }, { WorldResources.Type.METAL, res.metal } }; BasePlayer owner = BasePlayer.getOwner(entity); ResourcesPlacer placer = ResourcesPlacer.get(owner); bool isUnit = entity.doIfUnit(unit => { if (unit.type != UnitTypes.HERO) { placer.Buy(d); } }); if (!isUnit) { if (((BuildingInfo)entity.info).type != BuildingTypes.STRONGHOLD) { placer.Buy(d); } } placer.updatePopulation(); if (entity.info.isResource || entity.info.isUnit) { placer.StatisticsChanged(entity, CreatePackageFromEntity(entity)); } }
public bool enoughResources(EntityResources res) { return(enoughResources(WorldResources.Type.FOOD, res.food) && enoughResources(WorldResources.Type.METAL, res.metal) && enoughResources(WorldResources.Type.WOOD, res.wood)); }