示例#1
0
    /// <summary>
    /// Performs this action. Returns true if the action was
    /// successful.
    /// </summary>
    public void Do()
    {
        // Track the number of uses.
        UseCount++;

        // Do self targeted actions FIRST!
        bool success = DoSelfActions();

        // Do targeted actions if the self actions were
        // successful
        if (success)
        {
            DoTargetedActions();
        }

        // Notify listeners once complete.
        OnActionUsed?.Invoke(this);
    }
示例#2
0
 private IEnumerator ShowAllConsequences(ActionData actionSelected)
 {
     foreach (ActionConsequence consequence in actionSelected.Consequences)
     {
         if (!DistrictHandler.Instance.AreDistrictsFromDataDisabled(consequence.District))
         {
             DistrictHandler.Instance.AddDistrictValue(consequence.District, CurrentMultiplier * consequence.Value);
             yield return(StartCoroutine(ShowConsequence(consequence.Description)));
         }
     }
     if (ConfigData.Action.ConsequenceAllAfterTurn)
     {
         DistrictHandler.Instance.AddDistrictValueToAll(CurrentMultiplier * ConfigData.Action.ValueConsequenceAfterTurn);
         yield return(ShowConsequence(ConfigData.Action.DescriptionConsequenceAfterTurn));
     }
     Selectable = true;
     if (!SelectedDistrict.IsDisabled())
     {
         EnableAllActions();
     }
     OnActionUsed?.Invoke();
 }