public override void EndState( IUnitState nextState) { if(nextState == null) { return; } }
protected void OnCollisionEnter(Collision collision) { if (collision.gameObject.layer == 10) // Layer "Entities" { unitState = new CollidedUnitState(); unitState.Execute(this); } }
public override void BeginState( IUnitState currentState) { if(currentState == null) { return; } Moving (); }
public override void BeginState(IUnitState currentState) { if(currentState == null) { return; } m_startTime = Time.realtimeSinceStartup; }
void IUnitBehaviour.HandleUnitDetach() { availableSlots.Clear(); unslottedApplications.Clear(); visibleSlotsByApplication.Clear(); applicationSlots = null; unitState = null; }
public MovementInfo(Unit unit, IUnitState unitState) { Unit = unit; UnitState = unitState; if (!unit.IsOwner) { unit.AddCallback(nameof(IUnitState.MovementFlags), OnUnitStateFlagsChanged); } }
internal SpellHistory(Unit unit, IUnitState unitState) { caster = unit; casterState = unitState; if (!caster.IsOwner) { caster.AddCallback(nameof(IUnitState.GlobalCooldown), OnGlobalCooldownChanged); } }
void IUnitBehaviour.HandleUnitAttach(Unit unit) { unitState = unit.entityState; applicationSlots = new AuraApplication[unitState.VisibleAuras.Length]; for (int i = 0; i < unitState.VisibleAuras.Length; i++) { availableSlots.Add(i); } }
private void Start() { stats = GetComponent<Stats> (); uMC = GetComponent<UnitMovementController> (); uJC = GetComponent<UnitJobController> (); idle = new Idle (this); occupied = new Occupied (this); returnHome = new ReturnHome (this); fullfilingNeeds = new FullfilingNeeds (this); currentState = idle; }
/// <summary> /// Apply changes for all modified or added entities. /// </summary> public override void ApplyChanges() { Context.ChangeTracker.DetectChanges(); foreach (var entry in Context.ChangeTracker.Entries <IUnitState>()) { IUnitState stateInfo = entry.Entity; entry.State = ConvertToEntityState(stateInfo.UnitState); if (stateInfo.UnitState == UnitState.Unchanged) { var databaseValues = entry.GetDatabaseValues(); entry.OriginalValues.SetValues(databaseValues); } } }
public void Attacked(string attack) { switch (attack) { case "Medic Blind": Debug.Log("메딕에게 블라인드 상태이상 공격을 받음"); unitState = new Blind(); break; case "Ghost LockDown": Debug.Log("고스트에게 락다운 상태이상 공격을 받음"); unitState = new LockDown(); break; default: break; } }
// Constructor public RecruitmentPattern(Unit unit) { _unit = unit; waitBehavior = new WaitBehavior(_unit); seekBehavior = new SeekBehavior(_unit); pursuitBehavior = new PursuitBehavior(_unit); waitState = new WaitState(this, waitBehavior); followLeaderState = new FollowLeaderState(this, seekBehavior); holdPositionState = new HoldPositionState(this, waitBehavior); defendPositionState = new DefendPositionState(this, pursuitBehavior); attackEnemyState = new AttackEnemyState(this, pursuitBehavior); attackTargetState = new AttackLeaderTargetState(this, seekBehavior); workState = new WorkState(this, waitBehavior); currentState = waitState; }
internal SpellCast(Unit caster, IUnitState casterState) { this.caster = caster; this.casterState = casterState; }
public void OnTriggerDyingUnitState() { unitState = new DyingUnitState(); unitState.Execute(this); }
public void SetState(IUnitState state) { States.RemoveRange(1, States.Count - 1); States.Add(state); }
public SiegeTank(IUnitState unitState) { this.unitState = unitState; }
public CUnit() { myState = new CNormalState(); }
public Tank() { _state = new TankState(); _canmove = _state.CanMove; _damage = _state.Damage; }
public abstract void BeginState(IUnitState currentState);
public abstract void EndState(IUnitState nextState);
public PlayerMovementInfo(Unit unit, IUnitState unitState) : base(unit, unitState) { }
public Tank() { State = new TankState(); }