private void ReturnToSelf(RoleInGame player, Car car, returnning cmp, ref List <string> notifyMsg) { var speed = car.ability.Speed; int startT = 0; var result = new List <int>(); //RoleInGame boss = cmp.returningOjb.Boss; // that.getStartPositon(Program.dt.GetFpByIndex(cmp.target), (boss.positionInStation + 1) % 5, ref startT); var boss = cmp.returningOjb.Boss; // Program.dt.GetAFromBPoint(cmp.returningOjb.returnToSelfAddrPath, Program.dt.GetFpByIndex(cmp.target), speed, ref result, ref startT, player.improvementRecord.speedValue > 0); if (cmp.returningOjb.returnToSelfAddrPath.path.Count > 0) { Program.dt.GetAFromBPoint(cmp.returningOjb.returnToSelfAddrPath.path[0].path, cmp.returningOjb.returnToSelfAddrPath.path[0].position, speed, ref result, ref startT, player.improvementRecord.speedValue > 0); } var self = player; // that.getEndPositon(Program.dt.GetFpByIndex(self.StartFPIndex), self.positionInStation, ref result, ref startT, player.improvementRecord.speedValue > 0); // result.RemoveAll(item => item.t == 0); car.setState(that._Players[cmp.key], ref notifyMsg, CarState.returning); car.targetFpIndex = self.StartFPIndex; Data.PathStartPoint2 startPosition; if (cmp.returningOjb.returnToSelfAddrPath.path.Count == 0) { //that.getStartPositionByFp(out startPosition, cmp.returningOjb.returnToSelfAddrPath.path[0].position); // that.getStartPositionByFp(out startPosition, Program.dt.GetFpByIndex(player.StartFPIndex)); var fp = Program.dt.GetFpByIndex(player.StartFPIndex); double x, y; CommonClass.Geography.calculatBaideMercatorIndex.getBaiduPicIndex(fp.positionLongitudeOnRoad, fp.positionLatitudeOnRoad, out x, out y); startPosition = new Data.PathStartPoint2() { x = Convert.ToInt32(x * 256), y = Convert.ToInt32(y * 256) }; } else { that.getStartPositionByGoPath(out startPosition, cmp.returningOjb.returnToSelfAddrPath.path[0]); } car.setState(player, ref notifyMsg, CarState.returning); car.setAnimateData(player, ref notifyMsg, new AnimateData2(startPosition, result, DateTime.Now, false)); car.setState(player, ref notifyMsg, CarState.returning); this.StartArriavalThread(startT, 0, player, car, cmp.returningOjb.returnToSelfAddrPath, (newStartT) => { this.startNewThread(newStartT, new commandWithTime.comeBack() { c = "comeBack", //car = cmp.car, key = cmp.key }, this); }, player); }
internal void SetReturnFromBoss(int v, RoleInGame boss, returnning returnning) { this.startNewThread(v, returnning, this); //this.newt //returnning returnningObj = new returnning() //{ // c = "returnning", // changeType = returnning.ChangeType.AfterTax, // key = returnning.key, // returningOjb = returnning.returningOjb //}; //this.newThreadDo(returnningObj); //throw new NotImplementedException(); }
public void newThreadDo(baseC dObj) { if (dObj.c == "returnning") { returnning obj = (returnning)dObj; this.setReturn(obj); } else if (dObj.c == "comeBack") { comeBack obj = (comeBack)dObj; this.setBack(obj); } //throw new NotImplementedException(); }
private void ReturnToBoss(RoleInGame player, Car car, returnning cmp, ref List <string> notifyMsg) { switch (cmp.changeType) { case returnning.ChangeType.AfterTax: { var speed = car.ability.Speed; int startT = 0; var result = new List <int>(); //RoleInGame boss = cmp.returningOjb.Boss; // that.getStartPositon(Program.dt.GetFpByIndex(cmp.target), (boss.positionInStation + 1) % 5, ref startT); var boss = cmp.returningOjb.Boss; Data.PathStartPoint2 startPosition; var fp1 = Program.dt.GetFpByIndex(boss.StartFPIndex); result = that.getStartPositon(fp1, boss.positionInStation + 1, ref startT, out startPosition, player.improvementRecord.speedValue > 0); Program.dt.GetAFromBPoint(cmp.returningOjb.returnToSelfAddrPath.path[0].path, cmp.returningOjb.returnToSelfAddrPath.path[0].position, speed, ref result, ref startT, player.improvementRecord.speedValue > 0); var self = player; // that.getEndPositon(Program.dt.GetFpByIndex(self.StartFPIndex), self.positionInStation, ref result, ref startT, player.improvementRecord.speedValue > 0); // result.RemoveAll(item => item.t == 0); car.setState(that._Players[cmp.key], ref notifyMsg, CarState.returning); car.targetFpIndex = self.StartFPIndex; car.setAnimateData(player, ref notifyMsg, new AnimateData2(startPosition, result, DateTime.Now, false)); car.setState(player, ref notifyMsg, CarState.returning); this.StartArriavalThread(startT, 0, player, car, cmp.returningOjb.returnToSelfAddrPath, (int newStart) => { this.startNewThread(newStart, new commandWithTime.comeBack() { c = "comeBack", //car = cmp.car, key = cmp.key }, this); }, self); }; break; case returnning.ChangeType.BeforeTax: { var speed = car.ability.Speed; int startT = 0; var result = new List <int>(); //RoleInGame boss = cmp.returningOjb.Boss; // that.getStartPositon(Program.dt.GetFpByIndex(cmp.target), (boss.positionInStation + 1) % 5, ref startT); var boss = cmp.returningOjb.Boss; if (cmp.returningOjb.returnToBossAddrPath.path.Count > 0) { Program.dt.GetAFromBPoint(cmp.returningOjb.returnToBossAddrPath.path[0].path, cmp.returningOjb.returnToBossAddrPath.path[0].position, speed, ref result, ref startT, player.improvementRecord.speedValue > 0); } // that.getEndPositon(Program.dt.GetFpByIndex(boss.StartFPIndex), boss.positionInStation + 1, ref result, ref startT, player.improvementRecord.speedValue > 0); // result.RemoveAll(item => item.t == 0); car.setState(that._Players[cmp.key], ref notifyMsg, CarState.returning); car.targetFpIndex = boss.StartFPIndex; /* * A:这里的if 是正常情况 * B:else 考虑的是攻击自己的老大的情况!位置就是处于老大大本营时的情况 */ if (cmp.returningOjb.returnToBossAddrPath.path.Count > 0) { Data.PathStartPoint2 startPosition; that.getStartPositionByGoPath(out startPosition, cmp.returningOjb.returnToBossAddrPath.path[0]); car.setAnimateData(player, ref notifyMsg, new AnimateData2(startPosition, result, DateTime.Now, false)); } else { } car.setState(player, ref notifyMsg, CarState.returning); StartArriavalThread(startT, 0, player, car, cmp.returningOjb.returnToBossAddrPath, (int newStartT) => { that.taxE.CollectTax(newStartT, new taxSet() { c = "taxSet", changeType = returnning.ChangeType.BeforeTax, key = cmp.key, target = cmp.target, returningOjb = cmp.returningOjb }); }, boss); //startNewThread(startT,) }; break; default: { throw new Exception($"cmp.changeType 没有赋正确值"); } } }