コード例 #1
0
ファイル: UnitShowBlip.cs プロジェクト: phiLyken/RC_1
 void CheckTurn(UnitActionBase ability)
 {
     if (Behavior == BlipBehaviour.on_action)
     {
         Blip.SetActive(ability.ActionInProgress);
     }
 }
コード例 #2
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
    void SetNewAction(UnitActionBase action)
    {
        m_action = action;

        if (m_action != null)
        {
            MDebug.Log("^ui Button Set Action " + m_action.ActionID);
            //so we can test it also without owner
            if (action.GetOwner() != null)
            {
                inventory = action.GetOwner().Inventory;
                inventory.OnInventoryUpdated += OnInventoryUpdate;
                action.GetOwner().Stats.OnStatUpdated -= OnStatUpdated;

                if (Adr_Rush != null)
                {
                    Adr_Rush.Init(action.GetOwner().Stats);
                }
            }

            action.OnSelectAction   += OnActionSelect;
            action.OnUnselectAction += OnActionUnselect;
            action.OnActionComplete += OnActionComplete;
            action.OnActionStart    += OnActionComplete;

            action.GetOwner().Stats.OnStatUpdated += OnStatUpdated;
            SetBaseState(m_action);
        }
    }
コード例 #3
0
 void ActionChanged(UnitActionBase b)
 {
     if (OnUpdateTurnTime != null)
     {
         OnUpdateTurnTime(this as ITurn);
     }
 }
コード例 #4
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
    public void SetAction(UnitActionBase action, ActionManager manager)
    {
        m_manager = manager;

        UnsetCurrentAction();
        SetNewAction(action);
    }
コード例 #5
0
    void Awake()
    {
        m_action = GetComponent <UnitActionBase>();

        m_action.OnSelectAction   += OnSelect;
        m_action.OnUnselectAction += OnUnselect;
    }
コード例 #6
0
    public virtual void SetAbility(UnitActionBase ability)
    {
        GameObject header = Instantiate(Resources.Load("UI/ToolTips/ui_toolip_ability_header") as GameObject);

        header.transform.SetParent(HeaderTarget, false);
        header.GetComponent <UI_ToolTipAbility_Header>().SetAbility(ability);
    }
コード例 #7
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
    public void UpdateChargers(UnitActionBase action)
    {
        ChargesCounterFill.gameObject.SetActive(action.ChargeController.useCharges);
        ChargesCounterTF.gameObject.SetActive(action.ChargeController.useCharges);


        ChargesCounterTF.text = action.ChargeController.GetChargesForType().ToString() + "/" + action.ChargeController.GetMax();
    }
コード例 #8
0
ファイル: UI_Unit.cs プロジェクト: phiLyken/RC_1
    void ActionComplete(UnitActionBase action)
    {
        if (m_unit.IsDead())
        {
            return;
        }

        UpdateAP();
    }
コード例 #9
0
    public virtual void SetAbility(UnitActionBase ability)
    {
        Icon.sprite      = ability.GetImage();
        Name.text        = ability.GetActionID();
        Description.text = ability.GetDescription().Replace("<br>", "\n");


        EndsTurnIndicator.SetActive(ability.GetEndsTurn());
    }
コード例 #10
0
    public override void SetAbility(UnitActionBase ability)
    {
        base.SetAbility(ability);

        UnitAction_ApplyEffect ap = ability as UnitAction_ApplyEffect;

        //    MDebug.Log(ap.Effects.Count);
        EffectList.SetEffects(ap.Effects);
    }
コード例 #11
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
 ColorSetting_Button GetBaseColorSetting(UnitActionBase action)
 {
     if (Adr_Rush != null && ShowAdrenalineRush() && Adr_Rush.HasRush && action.CanExecAction(false))
     {
         return(UI_ActionBar_Button_ColorSetting.GetInstance().BTN_ADR_Rush);
     }
     else
     {
         return(action.CanExecAction(false) ? UI_ActionBar_Button_ColorSetting.GetInstance().BTN_Active : UI_ActionBar_Button_ColorSetting.GetInstance().BTN_Inactive);
     }
 }
コード例 #12
0
    // Use this for initialization
    void Start()
    {
        m_action = GetComponent <UnitActionBase>();

        m_action.OnUnselectAction += _b =>
        {
            OnDisable();
        };

        m_action.OnTargetsFound += OnPreview;
    }
コード例 #13
0
ファイル: ActionManager.cs プロジェクト: phiLyken/RC_1
    void TargetedAction(UnitActionBase b, Transform tgt)
    {
        // MDebug.Log("targeted action");
        if (OnTargetAction != null)
        {
            OnTargetAction(b, tgt);
        }

        if (GetOwnerID() == 0)
        {
            SoundManager.PlayAtSourceTag("SoundSFXSource", "sfx_" + SoundManager.Presets.ability_confirm);
        }
    }
コード例 #14
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
    public void SetBaseState(UnitActionBase action)
    {
        if (action == null || action.GetOwner() == null)
        {
            return;
        }
        // MDebug.Log("set base state " + action.ActionID);
        ActionIcon.sprite = action.GetImage();

        ApplyColorSetting(GetBaseColorSetting(action));

        UpdateChargers(action);
    }
コード例 #15
0
 void OnMoveEnd(UnitActionBase b)
 {
     if (b.GetOwner().currentTile.isCamp)
     {
         b.OnActionComplete -= OnMoveEnd;
         GlobalUpdateDispatcher.OnUpdate -= _update;
         if (_spawnedArrow != null)
         {
             Destroy(_spawnedArrow);
         }
         Complete();
     }
 }
コード例 #16
0
ファイル: ActionManager.cs プロジェクト: phiLyken/RC_1
    public UnitActionBase SelectAbility(UnitActionBase ability)
    {
        if (Unit.SelectedUnit != m_Owner || !HasAP() || IsAnimationPlaying() || m_Owner.IsDead())
        {
            MDebug.Log("^abilityCould not select ability " + ability.GetActionID());
            return(null);
        }
        if (currentAction != null && currentAction == ability)
        {
            if (GetOwnerID() == 0)
            {
                SoundManager.PlayAtSourceTag("SoundSFXSource", "sfx_" + SoundManager.Presets.ability_cancel.ToString());
            }
            UnsetCurrentAction();
            return(null);
        }


        UnsetCurrentAction();
        if (!ability.CanExecAction(true))
        {
            MDebug.Log("^abilitycan not execute ability " + ability.GetActionID());
            if (GetOwnerID() == 0)
            {
                SoundManager.PlayAtSourceTag("SoundSFXSource", "sfx_" + SoundManager.Presets.error.ToString());
            }
            return(null);
        }
        ToastNotification.StopToast();

        currentAction = ability;
        currentAction.OnActionStart    += OnActionUsed;
        currentAction.OnActionComplete += onComplete;
        currentAction.OnTarget         += TargetedAction;
        currentAction.SelectAction();
        if (GetOwnerID() == 0)
        {
            SoundManager.PlayAtSourceTag("SoundSFXSource", "sfx_" + SoundManager.Presets.ability_select.ToString());
        }

        if (OnActionSelected != null)
        {
            OnActionSelected(currentAction);
        }
        return(currentAction);
    }
コード例 #17
0
ファイル: ActionManager.cs プロジェクト: phiLyken/RC_1
    private void UnsetCurrentAction()
    {
        if (currentAction == null)
        {
            return;
        }

        currentAction.UnSelectAction();
        currentAction.OnActionStart -= OnActionUsed;

        currentAction.OnTarget -= TargetedAction;
        currentAction           = null;

        if (OnActionUnselected != null)
        {
            OnActionUnselected(currentAction);
        }
    }
コード例 #18
0
    public override void SetAbility(UnitActionBase ability)
    {
        UnitAction_ApplyEffectFromWeapon ae = ability as UnitAction_ApplyEffectFromWeapon;


        RegularList.SetEffects(ae.GetRegularEffects());

        if (ae.WeaponBehaviorIndex == 0)
        {
            UI_ToolTip_AdrenalineRush adr_ui = (Instantiate(Resources.Load("UI/ui_adrenaline_rush")) as GameObject).GetComponent <UI_ToolTip_AdrenalineRush>();
            adr_ui.transform.SetParent(AdrenalineBonus, false);
            adr_ui.Init(ability.GetOwner().Stats);
        }
        else
        {
            Divider.SetActive(false);
        }

        base.SetAbility(ability);
    }
コード例 #19
0
ファイル: ActionManager.cs プロジェクト: phiLyken/RC_1
    void OnActionUsed(UnitActionBase action)
    {
        AP_Used += action.GetEndsTurn() ? MaxAP : action.AP_Cost;

        CurrentTurnCost += (int)action.GetTimeCost();

        //  if (OnActionComplete != null) OnActionComplete(action);

        if (TurnSystem.HasTurn(m_Owner) && RC_Camera.Instance != null)
        {
            RC_Camera.Instance.ActionPanToPos.GoTo(m_Owner.currentTile.GetPosition());
        }

        UnsetCurrentAction();
        if (OnActionStarted != null)
        {
            OnActionStarted(action);
        }

        // MDebug.Log(Owner.GetID() + " Action used" + action.ActionID);
    }
コード例 #20
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
    void UnsetCurrentAction()
    {
        //   manager.OnActionComplete += OnActionComplete;

        if (m_action != null)
        {
            MDebug.Log("^ui Button Unset Action " + m_action.ActionID);
            m_action.OnSelectAction   -= OnActionSelect;
            m_action.OnUnselectAction -= OnActionUnselect;


            m_action.OnActionComplete -= OnActionComplete;
            m_action.GetOwner().Stats.OnStatUpdated -= OnStatUpdated;

            if (inventory != null)
            {
                inventory.OnInventoryUpdated -= OnInventoryUpdate;
            }

            m_action = null;
        }
    }
コード例 #21
0
    void UpdateButtons(ActionManager manager)
    {
        if (m_manager != null && manager != m_manager)
        {
            UnSelectAction(null);
        }

        if (m_manager != null)
        {
            m_manager.OnActionSelected   -= OnSelectAction;
            m_manager.OnActionUnselected -= UnSelectAction;
            //   m_manager.GetActionOfType<UnitAction_Move>().OnActionComplete += action => m_manager = null;
        }

        m_manager = manager;

        m_manager.OnActionSelected   += OnSelectAction;
        m_manager.OnActionUnselected += UnSelectAction;



        foreach (var button in CurrentButtons)
        {
            UnitActionBase actionb = GetActionForButton(m_manager.Actions.ToList(), button.Key);
            if (actionb != null)
            {
                button.Value.gameObject.SetActive(true);
                button.Value.SetAction(actionb, m_manager);
            }
            else
            {
                button.Value.gameObject.SetActive(false);
            }
        }


        Evac_Button_Icon.color = manager.GetOwner().currentTile.isCamp ? Color.white : new Color(0.3f, 0.3f, 0.3f, 1);
    }
コード例 #22
0
ファイル: MoveTileHighlight.cs プロジェクト: phiLyken/RC_1
 void OnUnSelectedMove(UnitActionBase action)
 {
     TileSelector.SetActive(false);
 }
コード例 #23
0
 void OnUnselect(UnitActionBase unselect)
 {
     previewed.RemoveGroup();
     previewed = null;
 }
コード例 #24
0
 void OnSelect(UnitActionBase select)
 {
     previewed = new MeshViewGroup(select.GetPreviewTiles(), TileStateConfigs.GetMaterialForstate(m_action.GetTileViewState()));
 }
コード例 #25
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
 public void OnActionSelect(UnitActionBase action)
 {
     ApplyColorSetting(UI_ActionBar_Button_ColorSetting.GetInstance().BTN_Selected);
 }
コード例 #26
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
 public void OnActionUnselect(UnitActionBase action)
 {
     //  MDebug.Log("Action unselect "+action.ActionID);
     SetBaseState(action);
 }
コード例 #27
0
ファイル: UI_ActionBar_Button.cs プロジェクト: phiLyken/RC_1
 void OnActionComplete(UnitActionBase _action)
 {
     SetBaseState();
 }
コード例 #28
0
 void UnSelectAction(UnitActionBase action)
 {
     SetBaseStatesInButtons();
 }
コード例 #29
0
 void OnMoveEnd(UnitActionBase m)
 {
     UnitAnimator.SetWalking(false);
     m.OnActionComplete -= OnMoveEnd;
 }
コード例 #30
0
ファイル: ActionManager.cs プロジェクト: phiLyken/RC_1
 void onComplete(UnitActionBase action)
 {
     OnActionComplete(action);
     action.OnActionComplete -= onComplete;
 }