예제 #1
0
 protected override void OnInit()
 {
     AIBase.ActionChoose action = new AIBase.ActionChoose {
         name      = "actionchoose",
         m_Entity  = base.m_Entity,
         Condition = new Func <bool>(this.GetCanMoveToHatred)
     };
     AIBase.ActionSequence sequence = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseqtrue"
     };
     sequence.AddAction(new AIMove1047(base.m_Entity));
     sequence.AddAction(new AIMove1006(base.m_Entity, 0x708, 0x9c4));
     action.ResultTrue = sequence;
     AIBase.ActionSequence sequence2 = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseq"
     };
     sequence2.AddAction(base.GetActionWaitRandom("actionwaitrandom1", 300, 600));
     sequence2.AddAction(new AIMove1002(base.m_Entity, 800, 0x3e8));
     action.ResultFalse = sequence2;
     AIBase.ActionSequence sequence3 = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseq1"
     };
     sequence3.AddAction(action);
     base.AddAction(sequence3);
 }
예제 #2
0
 private ActionBasic.ActionBase GetMove()
 {
     AIBase.ActionSequence sequence = new AIBase.ActionSequence {
         ConditionBase = new Func <bool>(this.GetIsAlive)
     };
     sequence.AddAction(new AIMove1008(base.m_Entity, 1f, 0x3e8));
     sequence.AddAction(base.GetActionWait("actionwait", 300));
     AIBase.ActionSequence sequence2 = new AIBase.ActionSequence {
         ConditionBase = new Func <bool>(this.GetIsAlive)
     };
     sequence2.AddAction(new AIMove1008(base.m_Entity, 1f, 0x3e8));
     sequence2.AddAction(base.GetActionWait("actionwait", 300));
     AIBase.ActionChoose action = new AIBase.ActionChoose {
         m_Entity   = base.m_Entity,
         Condition  = new Func <bool>(this.RandomMove3),
         ResultTrue = sequence2
     };
     sequence.AddAction(action);
     return(sequence);
 }
예제 #3
0
 protected override void OnInit()
 {
     AIBase.ActionChoose action = new AIBase.ActionChoose {
         name      = "actionchoose",
         m_Entity  = base.m_Entity,
         Condition = new Func <bool>(this.GetCanMoveToHatred)
     };
     AIBase.ActionSequence sequence = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseqtrue"
     };
     if (base.m_Entity.IsElite)
     {
         AIBase.ActionChooseRandom random = new AIBase.ActionChooseRandom {
             m_Entity = base.m_Entity
         };
         random.AddAction(10, new AIMove1009(base.m_Entity));
         random.AddAction(10, new AIMove1057(base.m_Entity));
         sequence.AddAction(random);
     }
     else
     {
         sequence.AddAction(new AIMove1009(base.m_Entity));
     }
     sequence.AddAction(new AIMove1006(base.m_Entity, 0x3e8, 0x640));
     action.ResultTrue = sequence;
     AIBase.ActionSequence sequence2 = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseq"
     };
     sequence2.AddAction(base.GetActionWaitRandom("actionwaitrandom1", 100, 300));
     sequence2.AddAction(new AIMove1002(base.m_Entity, 600, 800));
     action.ResultFalse = sequence2;
     AIBase.ActionSequence sequence3 = new AIBase.ActionSequence {
         m_Entity = base.m_Entity,
         name     = "actionseq1"
     };
     sequence3.AddAction(action);
     base.AddAction(sequence3);
 }