public void MengmengComeOn(ref MengMeng meng, ref Wupeng wupeng) { if (wupeng.state != State_Wupeng.Sleep) { meng.timer += Time.deltaTime; if (meng.timer > (1.0f / (float)meng.attackSpeed)) { meng.timer = 0.0f; meng.count += 1; if (meng.count % 2 == 0) { Debug.Log("meng打鼓加buff,wupeng获得 " + meng.attackAdd + " 点攻击增益"); wupeng.attack += meng.attackAdd; wupeng.buff += meng.attackAdd; } } } if (wupeng.state == State_Wupeng.Sleep) { wupeng.attack -= wupeng.buff; wupeng.buff = 0; } }
public void WupengUpdate(ref Wupeng wupeng, ref ZZ zz, ref Doudou doudou, ref Wuwu wuwu) { WupengUpdate(ref wupeng, ref doudou); ZZRecoverDoudou(ref wupeng, ref zz, ref doudou); WuwuComeOn(ref zz, ref wuwu); }
void EatingSleepingBeatingDoudou(ref Wupeng wupeng, ref Doudou doudou, ref Zz zz, ref Wuwu wuwu, ref Mengmeng mengmeng) { switch (wupeng.CurrentStats) { case Wupeng.Stats.Eat: { wupeng.CurrentTime += Time.deltaTime; mengmeng.AtkAdding(ref wupeng); //问:大于和等于的时间应该是不一样的?第二遍开始不再debug吴鹏开始打豆豆了。为什么? if (wupeng.CurrentTime > 3.0f) { wupeng.Nrg = 100f; wupeng.CurrentStats = Wupeng.Stats.Beat; wupeng.CurrentTime = 0.0f; Debug.Log("wupeng starts beating doudou"); } } break; case Wupeng.Stats.Beat: { wupeng.CurrentTime += Time.deltaTime; mengmeng.AtkAdding(ref wupeng); if (wupeng.CurrentTime > 1.0f) { wupeng.Nrg -= 10; doudou.HP -= wupeng.Atk; Debug.Log("Wupeng.Energy drops to " + wupeng.Nrg); Debug.Log("doudou.HP drops to" + doudou.HP); wupeng.CurrentTime = 0.0f; if (wupeng.Nrg < 0.0f) { wupeng.CurrentStats = Wupeng.Stats.Sleep; wupeng.CurrentTime = 0.0f; wupeng.Atk = wupeng.AtkBase; Debug.Log("Wupeng.Atk returns to" + wupeng.Atk); Debug.Log("Wupeng starts sleeping"); } } } break; case Wupeng.Stats.Sleep: { wupeng.CurrentTime += Time.deltaTime; Healing(ref zz, ref wuwu, ref doudou); if (wupeng.CurrentTime >= 5.0f) { zz.Heal = zz.HealBase; Debug.Log("zz.Heal returns to" + zz.Heal); wupeng.CurrentStats = Wupeng.Stats.Eat; wupeng.CurrentTime = 0.0f; Debug.Log("Wupeng starts eating"); } } break; } }
public void ZZRecoverDoudou(ref Wupeng wupeng, ref ZZ zz, ref Doudou doudou) { if (wupeng.state == State_Wupeng.Sleep) { if (zz.state == State_ZZ.Wait) { zz.state = State_ZZ.Prepare; } switch (zz.state) { case State_ZZ.Prepare: zz.timer += Time.deltaTime; if (zz.timer > 1.0f) { zz.timer = 0.0f; Debug.Log("zz开始治疗"); zz.state = State_ZZ.ReCover; } break; case State_ZZ.ReCover: zz.timer += Time.deltaTime; if (zz.timer > 1.0f) { doudou.hp += zz.recover; zz.timer = 0.0f; zz.count += 1; Debug.Log("zz给doudou加血" + zz.recover); if (zz.count == 2) //加完两次血更换状态 { zz.state = State_ZZ.End; Debug.Log("zz拆除工具"); } } break; case State_ZZ.End: zz.timer += Time.deltaTime; if (zz.timer > 1.0f) { zz.timer = 0.0f; Debug.Log("zz治疗结束"); zz.state = State_ZZ.Wait; } break; } } else { zz.state = State_ZZ.Wait; } }
public void AtkAdding(ref Wupeng wupeng) { CurrentTime += Time.deltaTime; if (CurrentTime > AtkAddTime) { BuffTimes++; CurrentTime = 0.0f; if (BuffTimes % 2 == 0) { wupeng.Atk += AtkAdd; Debug.Log("wupeng.Atk rises to" + wupeng.Atk); } } }
public void WupengUpdate(ref Wupeng wupeng, ref Doudou doudou) { switch (wupeng.state) { case State_Wupeng.Eat: wupeng.timer += Time.deltaTime; if (wupeng.timer > 3.0f) { wupeng.enegy += 100; wupeng.timer = 0.0f; } if (wupeng.enegy == 100) { Debug.Log("wupeng打豆豆"); wupeng.state = State_Wupeng.Beat; wupeng.timer = 0.0f; } break; case State_Wupeng.Beat: wupeng.timer += Time.deltaTime; if (wupeng.timer > 1.0) { wupeng.timer = 0.0f; wupeng.enegy -= 10; doudou.hp -= wupeng.attack; Debug.Log("doudou被打" + wupeng.attack + "点血"); } if (wupeng.enegy == 0) { wupeng.state = State_Wupeng.Sleep; Debug.Log("wupeng睡觉"); } break; case State_Wupeng.Sleep: wupeng.timer += Time.deltaTime; if (wupeng.timer > 5.0) { wupeng.timer = 0.0f; wupeng.state = State_Wupeng.Eat; Debug.Log("wupeng吃饭"); } break; } }
public void StateMachine(ref Wupeng wupeng) { CurrentTime += Time.deltaTime; if (CurrentTime >= AtkAddTime) { AtkAddTime += 1.0f / 4.0f; BangingTimes++; Debug.Log(BangingTimes); if (BangingTimes % 2 == 0) { wupeng.Atk += AtkAdd; Debug.Log("wupeng.Atk is" + wupeng.Atk); } } }
void Start() { //work01 wupeng = new Wupeng() { enegy = 0, attack = 8, state = State_Wupeng.Eat, timer = 0.0f, buff = 0 }; //work02 doudou = new Doudou() { name = "DouDou", hp = 1000 }; //work04 zz = new ZZ() { name = "zz", recover = 5, timer = 0.0f, state = State_ZZ.Prepare, count = 0, buff = 0 }; //work06 wuwu = new Wuwu() { name = "wuwu", recoverAdd = 1, recoverSpeed = 3, timer = 0.0f }; //work07 meng = new MengMeng() { name = "meng", attackAdd = 1, attackSpeed = 4, timer = 0.0f, count = 0 }; //work08 tlight = new TrafficLight() { state = State_TrafficLight.Yellow, green_last = 2.0f, red_last = 3.0f, yello_last = 1.5f, timer = 0.0f, yellow = imgYellow, green = imgGreen, red = imgRed }; //work09 timer = new Timer() { timer = 0.0f }; //work10 rocket = new Rocket() { image = imgRocket, speed = 2f, state = State_Rocket.counting, lunchDevice = new LunchDevice() { countdown_Prepare = new Timer() { timer = 10.0f, temper = 10.0f }, countdown_lunch = new Timer() { timer = 2.0f, temper = 2.0f } } }; }