public void Release()
 {
     PostFightOperation.Clear();
     PostHurt.Clear();
     PostChaseStateChange.Clear();
     PostIdleStateChange.Clear();
     PostAliveStateChange.Clear();
     PostHealthChange.Clear();
     PostMoveDistanceChange.Clear();
     PostChasingRemainDistance.Clear();
     PostKillEnemy.Clear();
     PostUnitDeathState.Clear();
     PostUnitSkillState = null;
     PostAfterUnitFight.Clear();
     PostAttackOrder.Clear();
 }
        public UnitBehaviorListener(Soldier owner)
        {
            this.owner = owner;

            PostFightOperation        = new List <UnitFightListener>();
            PostHurt                  = new List <UnitHurtListener>();
            PostChaseStateChange      = new List <UnitChaseStateListener>();
            PostIdleStateChange       = new List <UnitIdleStateListener>();
            PostAliveStateChange      = new List <UnitAliveStateListener>();
            PostHealthChange          = new List <UnitHealthChangeListener>();
            PostMoveDistanceChange    = new List <UnitMoveDistanceListener>();
            PostChasingRemainDistance = new List <UnitChasingListener>();
            PostAttackOrder           = new List <UnitAttackOrderListener>();
            PostKillEnemy             = new List <UnitKillEnemyListener>();
            PostUnitDeathState        = new List <UnitDeathListener>();
            PostUnitSkillState        = null;
            PostAfterUnitFight        = new List <UnitAfterFight>();
        }
 public void RemoveSkillStateListener(UnitSkillStateListener handler)
 {
     PostUnitSkillState -= handler;
 }
 public void RegisterSkillStateListener(UnitSkillStateListener handler)
 {
     PostUnitSkillState += handler;
 }