123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- using CommonAI.Zone;
- using CommonLang.Geometry;
- using ET.Client;
- using ET.EventType;
- using ET.Server;
- using System;
- using UnityEngine;
- using Random = System.Random;
- using Vector2 = CommonLang.Geometry.Vector2;
- namespace ET
- {
- [Event]
- public class BattleFuncHandler : BEvent<BattleFunc>
- {
- protected override async ETTask OnEvent(BattleFunc a)
- {
- Log.Debug($"Battle Func:{a.FuncIndex}");
- var session = PlayerComponent.Instance.ClientScene().GetComponent<SessionComponent>().Session;
- switch (a.FuncIndex)
- {
- case (int)BattleFunc.FUNC.Start:
- session.Call(new C2G_BattleNotify() { Message = BattleNotify.ClientIsReady.ToString() }).Coroutine();
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.StartRefreshMonster.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F1:
- var units = new int[] { 101, 111, 121, 131 };
- var centerpos = GetCurBattleCenter();
- var rand = new Random();
- foreach (var id in units)
- {
- float r = rand.Next(1000) / 30.0f + 8;
- double ang = rand.Next(120) / 180.0f * Math.PI + Math.PI;
- //Log.Debug($"rand unit r({r}), ang({ang})");
- float x = centerpos.X + (float)(r * Math.Cos(ang));
- float y = centerpos.Y - (float)(r * Math.Sin(ang));
- //Log.Debug($"born unit: r:{r}, ang:{ang}---({x},{y})");
- session.Call(new C2G_AddUnitsToMap()
- {
- UnitId = id,
- Force = 1,
- X = (int)x,
- Y = (int)y
- }).Coroutine();
- }
- //EventSystem.Instance.Publish(BattleMsgEvent.Static.Clone("'<font color=#fe3824>宝宝x</font>'进入了游戏,和大家一起守护家园!"));
- break;
- case (int)KeyCode.F2:
- centerpos = GetCurBattleCenter();
- var units2 = new int[] { 102, 112, 122, 132 };
- rand = new Random();
- for (int i = 0; i < 2; i++)
- {
- var id = units2[rand.Next(units2.Length)];
- float r = rand.Next(1000) / 30.0f + 8;
- double ang = rand.Next(120) / 180.0f * Math.PI + Math.PI;
- float x = centerpos.X + (float)(r * Math.Cos(ang));
- float y = centerpos.Y - (float)(r * Math.Sin(ang));
- session.Call(new C2G_AddUnitsToMap()
- {
- UnitId = id,
- Force = 1,
- X = (int)x,
- Y = (int)y
- }).Coroutine();
- }
- //EventSystem.Instance.Publish(BattleMsgEvent.Static.Clone("'<font color=#fe2c55>宝宝x</font>'使用了'<font color=#fe3824>甜甜圈</font>',成功变形为'二级宝宝'"));
- break;
- case (int)KeyCode.F3:
- centerpos = GetCurBattleCenter();
- var units3 = new int[] { 103, 113, 123, 133 };
- rand = new Random();
- for (int i = 0; i < 1; i++)
- {
- var id = units3[rand.Next(units3.Length)];
- float r = rand.Next(1000) / 30.0f + 8;
- double ang = rand.Next(120) / 180.0f * Math.PI + Math.PI;
- float x = centerpos.X + (float)(r * Math.Cos(ang));
- float y = centerpos.Y - (float)(r * Math.Sin(ang));
- session.Call(new C2G_AddUnitsToMap()
- {
- UnitId = id,
- Force = 1,
- X = (int)x,
- Y = (int)y
- }).Coroutine();
- }
- //EventSystem.Instance.Publish(BattleMsgEvent.Static.Clone("'<font color=#fe2c55>宝宝x</font>'使用了'<font color=#fe3824>甜甜圈</font>',成功变形为'三级宝宝'"));
- break;
- case (int)KeyCode.F4:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_1.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F5:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_10.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F6:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_52.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F7:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_99.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F8:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_199.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F9:
- session.Call(new C2G_BattleNotify()
- {
- Message = BattleNotify.TiktokGift_520.ToString()
- }).Coroutine();
- break;
- case (int)KeyCode.F10:
- break;
- }
- await ETTask.CompletedTask;
- }
- //获得当前战场focus中心(当前塔位置)
- private Vector2 vecTemp = new Vector2();
- private Vector2 GetCurBattleCenter()
- {
- foreach(var tid in ConstGame.TowerTemplateIDs)
- {
- var tower = BattleMgr.Instance.GetUnitByTemplateID(tid);
- if(tower != null && !tower.IsDead)
- {
- vecTemp.X = tower.ZUnit.X;
- vecTemp.Y = tower.ZUnit.Y;
- return vecTemp;
- }
- }
- return new Vector2(0, 0);
- }
- }
- //发送战斗服指令相关
- public partial class BattleMgr
- {
- private bool autoFight;
- public bool AutoFight
- {
- get
- {
- return autoFight;
- }
- set
- {
- if(value == autoFight) return;
- else
- {
- autoFight = value;
- }
- }
- }
- public CommonAI.Zone.Action SetAutoFight(bool flag)
- {
- return new UnitGuardAction(UnitMgr.Instance.ActorId, flag, CommonAI.XmdsConstConfig.AUTO_GUARD_MODE_POINT);
- }
- }
- }
|