Exemplo n.º 1
0
    public override bool DoAction()
    {
        if (!CanHealOther())
        {
            return(false);
        }

        float        hpRate = 1.1f;
        BuildingBase lowestHealthBuilding = null;

        foreach (var building in MapManager.Instance.GetCollectionOfItems <BuildingBase>())
        {
            if (Util.Get2DDistanceSquared(building.gameObject, this.gameObject) <= range)
            {
                if (hpRate > building.GetHitPointPercentage())
                {
                    hpRate = building.GetHitPointPercentage();
                    lowestHealthBuilding = building;
                }
            }
        }
        if (lowestHealthBuilding != null && hpRate < 1.0f)
        {
            //Debug.LogFormat("{0},{1}", lowestHealthBuilding.name, strength);
            lowestHealthBuilding.AddHitPoint(strength);
            actionState             = ESupportBuildingState.COOLING_DOWN;
            actionCoolDownStartTime = Time.time;
            return(true);
        }

        return(false);
    }