| | |
| | |
|
| | | public event Action selectTransmit;
|
| | |
|
| | | public event Action<bool> transmitStateUpdate;
|
| | | public event Action transmitStateUpdate;
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | |
| | | {
|
| | | var player = actor as GA_Player;
|
| | | var hero = PlayerDatas.Instance.hero;
|
| | | var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
|
| | | if (allowTransmit != (distance <= transmitDistance))
|
| | | if (SatisfyTransmitState())
|
| | | {
|
| | | allowTransmit = distance <= transmitDistance;
|
| | | update = true;
|
| | | var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
|
| | | if (allowTransmit != (distance <= transmitDistance))
|
| | | {
|
| | | allowTransmit = distance <= transmitDistance;
|
| | | update = true;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (allowTransmit)
|
| | | {
|
| | | allowTransmit = false;
|
| | | update = true;
|
| | | }
|
| | | }
|
| | | }
|
| | | if (update && selectTransmit != null)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | float transmitDistance = 1f;
|
| | | float transmitDistance = 2f;
|
| | | public int transmitCostSeconds { get; private set; }
|
| | | void ParseConfig()
|
| | | {
|
| | | var config = Config.Instance.Get<FuncConfigConfig>("");
|
| | | transmitCostSeconds = 30;
|
| | | var config = Config.Instance.Get<FuncConfigConfig>("FairyFeastTransmit");
|
| | | transmitCostSeconds = 15;
|
| | | if (config != null)
|
| | | {
|
| | | transmitDistance = int.Parse(config.Numerical1) / 100f;
|
| | | transmitDistance = float.Parse(config.Numerical1);
|
| | | transmitCostSeconds = int.Parse(config.Numerical2);
|
| | | }
|
| | | }
|
| | |
|
| | | bool SatisfyTransmitState()
|
| | | {
|
| | | var hero = PlayerDatas.Instance.hero;
|
| | | if (hero == null || hero.IsCollecting()
|
| | | || hero.IsCollect() || hero.IsDaZuo())
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | private void OnSelected(uint serverInstId, bool select)
|
| | |
| | | var player = actor as GA_Player;
|
| | | var hero = PlayerDatas.Instance.hero;
|
| | | var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
|
| | | allowTransmit = distance <= transmitDistance;
|
| | | if (SatisfyTransmitState())
|
| | | {
|
| | | allowTransmit = distance <= transmitDistance;
|
| | | }
|
| | | selectPlayer = serverInstId;
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | | transmitCompleteTime = DateTime.Now.AddTicks(transmitCostSeconds * TimeSpan.TicksPerSecond);
|
| | | transmitClock = Clock.Create(transmitCostSeconds, TransmitComplete);
|
| | | if (package.Type == 0)
|
| | | {
|
| | | transmitCompleteTime = DateTime.Now.AddTicks(transmitCostSeconds * TimeSpan.TicksPerSecond);
|
| | | transmitClock = Clock.Create(transmitCostSeconds, TransmitComplete);
|
| | | }
|
| | | else
|
| | | {
|
| | | if (transmitClock != null)
|
| | | {
|
| | | transmitClock.Stop();
|
| | | transmitClock = null;
|
| | | }
|
| | | transmitCompleteTime = TimeUtility.ClientOriginalTime;
|
| | | }
|
| | | if (transmitStateUpdate != null)
|
| | | {
|
| | | transmitStateUpdate(true);
|
| | | transmitStateUpdate();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | if (transmitStateUpdate != null)
|
| | | {
|
| | | transmitStateUpdate(false);
|
| | | transmitStateUpdate();
|
| | | }
|
| | | }
|
| | | #endregion
|