public virtual ActorView createActor(uint id, FBTeam team, string avatarName, Dictionary <string, string> avatarPart, float[] runAnimiationNormalSpeed, float height, bool gk, string name, FiveElements element, uint roleId) { ActorView se = null; GameObject ga = ModelResourceLoader.inst.createAvatar(avatarName, avatarPart, go => onActorLoaded(se, go)); ga.transform.parent = this.transform; se = ga.AddComponent <ActorView>(); se.id = id; se.testId = id; se.team = team; se.runAnimiationNormalSpeed = runAnimiationNormalSpeed; se.height = height; se.gk = gk; se.nickName = name; se.element = element; se.roleId = roleId; se.onCreate(); sceneEntityList.Add(id, se); return(se); }
public void init(uint beginFrame, uint endFrame, ushort goalTime, ushort replayTime, ulong goaler, Location goalDoor, ushort blueScore, ushort redScore, uint gkId, float positionRandomValue, float shootRandomValue, float goalRandomValue, FBTeam goalTeam) { this.beginFrame = beginFrame; this.endFrame = endFrame; this.replayTime = (byte)replayTime; this.goalDoor = goalDoor; this.positionRandomValue = positionRandomValue; this.shootRandomValue = shootRandomValue; this.goaler = goaler; this.blueScore = blueScore; this.redScore = redScore; this.goalTime = goalTime; this.goalTeam = goalTeam; }
public void removeGK(FBTeam team) { var gkGoach = getGKCoach(team); if (gkGoach != null) { gkGoach.gk = null; } }
void onBallGoal(FBTeam team, Location door, uint id) { var actions = cameraPosition.getGoalActions(cameraCtrl.goalRandomValue); if (!actions.isNullOrEmpty()) { actions.forEach(a => playAction(a)); } }
public CampType getCampType(FBTeam team) { switch (team) { case FBTeam.kBlue: return(blueCamp); case FBTeam.kRed: return(redCamp); } return(CampType.Attack); }
FBGKCoachAgent getGKCoach(FBTeam team) { switch (team) { case FBTeam.kBlue: return(blueGKCoach); case FBTeam.kRed: return(redGKCoach); } return(null); }
public FBActor getActorByTeam(FBTeam team) { for (int i = 0; i < m_actors.Count; ++i) { if (m_actors[i].team == team) { return(m_actors[i]); } } return(null); }
public FBGKCoachAgent(IGameInfo gameInfo, FBWorld world, FBTeam team, behaviac.Workspace workspace) { var behaviour = new BTGKCoach(); behaviour.Init(workspace); behaviour.agent = this; base.behaviour = behaviour; this.gameInfo = gameInfo; this.world = world; this.team = team; }
public uint getEnemyGKId(FBTeam team) { for (int i = 0; i < m_actors.Count; ++i) { var action = m_actors[i]; if (action.team != team && action.isDoorKeeper()) { return(action.id); } } return(0); }
FBActor getDoorKeeper(FBTeam team) { for (int i = 0; i < m_actors.Count; ++i) { var actor = m_actors[i]; if (actor.isDoorKeeper() && actor.team == team) { return(actor); } } return(null); }
public void init(uint id, uint roleId, FBTeam team, string name, Vector2 position, bool gk, FiveElements element, float height, float[] runAnimiationNormalSpeeds) { base.init(id); this.roleId = roleId; this.team = team; this.name = name; this.position = position; this.gk = gk; this.element = element; this.height = height; this.runAnimiationNormalSpeeds = runAnimiationNormalSpeeds; switch (roleId) { case 1: avatarName = "P0102_01"; avatarPart["000"] = "P0102_01_1_01"; break; case 2: avatarName = "P0504_01"; avatarPart["000"] = "P0504_01_1_01"; break; case 3: avatarName = "P0307_01"; avatarPart["000"] = "P0307_01_1_01"; break; case 4: avatarName = "GK0701_01"; avatarPart["000"] = "GK0701_01_1_01"; break; case 5: avatarName = "GK0701_01"; avatarPart["000"] = "GK0701_01_1_01"; break; case 6: avatarName = "GK0701_01"; avatarPart["000"] = "GK0701_01_1_01"; break; } }
public void removeAgent(FBPlayerAgent agent, FBTeam team) { if (agent == null) { Debuger.LogError("agent is null"); return; } var coach = getCoach(team); if (coach != null) { coach.removePlayer(agent); } }
public void addGK(FBGKAgent agent, FBTeam team) { if (agent == null) { Debuger.LogError("agent is null"); return; } var gkGoach = getGKCoach(team); if (gkGoach != null) { gkGoach.gk = agent; } }
public FixVector2 getDoorPosition(FBTeam team, bool self) { switch (team) { case FBTeam.kBlue: return(new FixVector2 { x = m_mainExtent.x * (self ? -Fix64.One : Fix64.One) }); case FBTeam.kRed: return(new FixVector2 { x = m_mainExtent.x * (self ? Fix64.One : -Fix64.One) }); } return(FixVector2.kZero); }
public void addAgent(FBPlayerAgent agent, FBTeam team) { if (agent == null) { Debuger.LogError("agent is null"); return; } FBCoachAgent coach = getCoach(team); if (coach != null) { coach.addPlayer(agent); } }
void onChangeCampState(FBTeam team) { switch (team) { case FBTeam.kBlue: blueCamp = CampType.Attack; redCamp = CampType.Defence; break; case FBTeam.kRed: blueCamp = CampType.Defence; redCamp = CampType.Attack; break; } }
public override void unserialize(BytesStream stream) { base.unserialize(stream); beginFrame = stream.ReadUInt32(); endFrame = stream.ReadUInt32(); replayTime = stream.ReadByte(); goalDoor = (Location)stream.ReadByte(); positionRandomValue = stream.ReadSingle(); shootRandomValue = stream.ReadSingle(); goalRandomValue = stream.ReadSingle(); goaler = stream.ReadUInt64(); blueScore = stream.ReadUInt16(); redScore = stream.ReadUInt16(); goalTime = stream.ReadUInt16(); goalTeam = (FBTeam)stream.ReadByte(); }
//创建门将教练 public void createGKCoach(IGameInfo gameInfo, FBTeam team, Workspace workspace, string btName) { var gkCoach = new FBGKCoachAgent(gameInfo, this, team, workspace); gkCoach.setBehaviour(btName); switch (team) { case FBTeam.kBlue: blueGKCoach = gkCoach; break; case FBTeam.kRed: redGKCoach = gkCoach; break; } }
public FBPlayer(uint id, uint baseID, FBTeam team, string name, bool mainActor, bool ai, FBWorld world, Workspace btWorkspace) { this.world = world; this.btWorkspace = btWorkspace; FBActor.Configuration config = loadConfig(baseID); //actor = new FBActor(config,baseID); //测试代码-fbactor_configuration actor = new FBActor(config, baseID, mainActor); actor.id = id; actor.team = team; actor.name = name; world.addActor(actor); this.ai = ai; }
public void changeCampState(FBTeam team) { //UnityEngine.Debug.LogError("changeCampState " + team); //jlx 2017.07.12-log:进球以后变为敌方开球 switch (team) { case FBTeam.kBlue: blueCamp = CampType.Defence; redCamp = CampType.Attack; break; case FBTeam.kNone: case FBTeam.kRed: blueCamp = CampType.Attack; redCamp = CampType.Defence; break; } }
public TeamState getTeamState(FBTeam team) { switch (curStateType) { case GameState.Enter: return(TeamState.BeforeGame); case GameState.Gaming: var camp = getCampType(team); switch (camp) { case CampType.Attack: return(TeamState.Attack); case CampType.Defence: return(TeamState.Defence); } return(TeamState.None); case GameState.Goal: return(goalTeam == team ? TeamState.Goal : TeamState.EnemyGoal); case GameState.Over: if (blueScore == redScore) { return(TeamState.AfterGameDraw); } switch (team) { case FBTeam.kBlue: return(blueScore < redScore ? TeamState.AfterGameLose : TeamState.AfterGameWin); case FBTeam.kRed: return(redScore < blueScore ? TeamState.AfterGameLose : TeamState.AfterGameWin); } break; case GameState.Ready: break; case GameState.Replay: break; } //Debuger.LogError("getTeamState team: " + team + " curStateType: " + curStateType + " TeamState.None"); return(TeamState.None); }
public List <FBActor> getTeamMates(FBTeam team, bool includeGK = true) { var enemys = new List <FBActor>(); for (int i = 0; i < m_actors.Count; ++i) { var actor = m_actors[i]; if (actor.team != team) { continue; } if (actor.isDoorKeeper() && !includeGK) { continue; } enemys.Add(actor); } return(enemys); }
/// <summary> /// 测试使用函数,后面删除 /// </summary> public void onCheckBallState() { if (ConstTable.DebugStateAction == 2) { if (fbWorld.ball.owner != null) { //自己停止Defend fbWorld.ball.owner.stopDefend(); FBTeam notHodlingBallTeam = (FBTeam)(3 - (int)fbWorld.ball.owner.team); FBActor actor = fbWorld.getActorByTeam(notHodlingBallTeam); if (actor != null && actor.checkMovingState()) { actor.startDefend(fbWorld.ball.owner); } } else { } } }
public uint getNearPlayer(FBTeam team, PlayerType type) { var ballPosition = ball.getPosition(); var minDistance = Fix64.MaxValue; var id = 0u; var teamMates = getTeamMates(team); for (int i = 0; i < teamMates.Count; i++) { var teamMate = teamMates[i]; if ((type & (teamMate.AIing ? PlayerType.AI : PlayerType.Player)) == 0) { continue; } var distance = teamMate.getPosition().squareDistance(ballPosition); if (distance < minDistance) { id = teamMate.id; minDistance = distance; } } return(id); }
public override void unserialize(BytesStream stream) { base.unserialize(stream); team = (FBTeam)stream.ReadByte(); position = stream.readVector2(); height = stream.ReadSingle(); for (int i = 0; i < runAnimiationNormalSpeeds.Length; ++i) { runAnimiationNormalSpeeds[i] = stream.ReadSingle(); } //avatar相关 begin avatarName = stream.ReadString(); for (int i = 0; i < maxAvatarPartNum; i++) { avatarPart.Add(stream.ReadString(), stream.ReadString()); } //avatar相关 end gk = stream.ReadBoolean(); name = stream.ReadString(); element = (FiveElements)stream.ReadByte(); roleId = stream.ReadUInt32(); }
public override void unserialize(BytesStream stream) { base.unserialize(stream); team = (FBTeam)stream.ReadByte(); }
public void init(uint playerID, FBTeam team) { base.init(playerID); this.team = team; }
public Vector3 getEnemyDoorPosition(FBTeam team) { return(team == FBTeam.kBlue ? rightDoorPosition : leftDoorPosition); }
public void init(uint id, FBTeam team, Location door) { base.init(id); this.team = team; this.door = door; }
void onBallGoal(FBTeam team, Location door, uint id) { endShoot(); cameraCtrl.goaler = id; cameraCtrl.fsm.changeState(GameState.Goal); }