public override void Reset() { Action.SetSuccess(); Action = null; base.Reset(); }
protected override void Initialize(AgentAction action) { base.Initialize(action); Action = action as AgentActionUse; // Debug.Log(Time.timeSinceLevelLoad + " Action.InterObj.UseTime " + Action.InterObj.UseTime); if (Action.InterObj.GetEntryTransform()) { StartPosition = Transform.position; StartRotation = Transform.rotation; FinalRotation.SetLookRotation(Action.InterObj.GetEntryTransform().forward); FinalPosition = Action.InterObj.GetEntryTransform().position; CurrentMoveTime = 0; MoveTime = 0.2f; PositionOK = false; } else { PositionOK = true; } State = E_State.E_PREPARING_FOR_USE; }
public override void OnDeactivate() { Owner.BlackBoard.ReactOnHits = true; Owner.BlackBoard.BusyAction = false; Action.SetSuccess(); Action = null; base.OnDeactivate(); }
public override void Activate() { base.Activate(); Action = AgentActionFactory.Create(AgentActionFactory.E_Type.Use) as AgentActionUse; Action.InterObj = Owner.BlackBoard.Desires.InteractionObject; Owner.BlackBoard.InteractionObject = Owner.BlackBoard.Desires.InteractionObject; Owner.BlackBoard.Desires.InteractionObject = null; Owner.BlackBoard.ActionAdd(Action); Owner.BlackBoard.Desires.WeaponTriggerOn = false; Owner.BlackBoard.Desires.WeaponTriggerUp = false; Owner.BlackBoard.Desires.WeaponTriggerUpDisabled = true; Owner.BlackBoard.Desires.MeleeTriggerOn = false; }
public static AgentAction Create(E_Type type) { int index = (int)type; AgentAction a; if (m_UnusedActions[index].Count > 0) { a = m_UnusedActions[index].Dequeue(); } else { switch (type) { case E_Type.Idle: a = new AgentActionIdle(); break; case E_Type.Move: a = new AgentActionMove(); break; case E_Type.Sprint: a = new AgentActionSprint(); break; case E_Type.Goto: a = new AgentActionGoTo(); break; case E_Type.Attack: a = new AgentActionAttack(); break; case E_Type.Melee: a = new AgentActionMelee(); break; case E_Type.Injury: a = new AgentActionInjury(); break; case E_Type.Roll: a = new AgentActionRoll(); break; case E_Type.WeaponChange: a = new AgentActionWeaponChange(); break; case E_Type.Rotate: a = new AgentActionRotate(); break; case E_Type.Use: a = new AgentActionUse(); break; case E_Type.PlayAnim: a = new AgentActionPlayAnim(); break; case E_Type.PlayIdleAnim: a = new AgentActionPlayIdleAnim(); break; case E_Type.Death: a = new AgentActionDeath(); break; case E_Type.Knockdown: a = new AgentActionKnockdown(); break; case E_Type.Teleport: a = new AgentActionTeleport(); break; case E_Type.CoverEnter: a = new AgentActionCoverEnter(); break; case E_Type.CoverMove: a = new AgentActionCoverMove(); break; case E_Type.CoverFire: a = new AgentActionCoverFire(); break; case E_Type.CoverFireCancel: a = new AgentActionCoverFireCancel(); break; case E_Type.CoverLeave: a = new AgentActionCoverLeave(); break; case E_Type.Reload: a = new AgentActionReload(); break; case E_Type.UseItem: a = new AgentActionUseItem(); break; case E_Type.ConstructGadget: a = new AgentActionConstructGadget(); break; case E_Type.TeamCommand: a = new AgentActionTeamCommand(); break; default: Debug.LogError("no AgentAction to create"); return(null); } } a.Reset(); a.SetActive(); // DEBUG !!!!!! // m_ActionsInAction.Add(a); return(a); }