Beispiel #1
0
 public override void EndState( IUnitState nextState)
 {
     if(nextState == null)
     {
         return;
     }
 }
Beispiel #2
0
 protected void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.layer == 10) // Layer "Entities"
     {
         unitState = new CollidedUnitState();
         unitState.Execute(this);
     }
 }
Beispiel #3
0
 public override void BeginState( IUnitState currentState)
 {
     if(currentState == null)
     {
         return;
     }
     Moving ();
 }
Beispiel #4
0
 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;
            }
Beispiel #6
0
        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);
                }
            }
Beispiel #9
0
    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;
    }
Beispiel #10
0
        /// <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);
                }
            }
        }
Beispiel #11
0
        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;
            }
        }
Beispiel #12
0
    // 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;
 }
Beispiel #14
0
 public void OnTriggerDyingUnitState()
 {
     unitState = new DyingUnitState();
     unitState.Execute(this);
 }
Beispiel #15
0
 public void SetState(IUnitState state)
 {
     States.RemoveRange(1, States.Count - 1);
     States.Add(state);
 }
Beispiel #16
0
 public SiegeTank(IUnitState unitState)
 {
     this.unitState = unitState;
 }
Beispiel #17
0
 public CUnit()
 {
     myState = new CNormalState();
 }
Beispiel #18
0
 public Tank()
 {
     _state   = new TankState();
     _canmove = _state.CanMove;
     _damage  = _state.Damage;
 }
Beispiel #19
0
 public abstract void BeginState(IUnitState currentState);
Beispiel #20
0
 public abstract void EndState(IUnitState nextState);
Beispiel #21
0
 public PlayerMovementInfo(Unit unit, IUnitState unitState) : base(unit, unitState)
 {
 }
Beispiel #22
0
 public Tank()
 {
     State = new TankState();
 }