public Team CreateTeam(List <Detective> detectives, iActivityPlace start) { Agency agency = Agency.GetInstantiate(); GameObject teamFolder = agency.teamFolder; if (teamFolder == null && agency.transform.Find("Teams")) { teamFolder = agency.transform.Find("Teams").gameObject; agency.teamFolder = teamFolder; } if (teamFolder == null) { teamFolder = new GameObject("Teams"); teamFolder.transform.parent = agency.transform; agency.teamFolder = teamFolder; } GameObject goTeam = new GameObject(string.Format("Team_{0}", detectives[0].characterName)); goTeam.transform.parent = teamFolder.transform; Team team = goTeam.AddComponent <Team>(); team.detectives = detectives; team.startPlace = start; team.CreateLineRenderer(); agency.teams.Add(team); return(team); }
public void GoTo(iActivityPlace target, WayType wayType, bool colorWay) { curTarget = target; ResetWayColor(); curWay = MapManager.GetInstantiate().pathfinder.GetWay(wayType, startPlace.GetPoint(), target.GetPoint(), transform); showWay = colorWay; ChangeActivity(DetectiveActivity.IN_WAY, curWay.pointsAndPaths[0]); }
public void GoToAction(iActivityPlace target, float relativeTime) { Timeline timeline = Timeline.GetInstantiate(); GameObject goAction = new GameObject(string.Format("TimelineAction_TeamGoTo")); goAction.transform.parent = timeline.transform; TimelineAction action = goAction.AddComponent <TimelineAction>(); action.actionType = TimelineActionType.TEAM_GO_TO; action.team = this; action.activityPlace = target; action.timer = timeline.GetTime() + relativeTime; //выплата через неделю. timeline.RegistrateAction(action); }
public void TeamOnTarget(List <Detective> detectives, iActivityPlace target, List <QuestTask> questTasks = null, iActivityPlace start = null) { Agency agency = Agency.GetInstantiate(); if (start == null) { start = agency.GetOffice(); } Team team = CreateTeam(detectives, start); if (target is QuestEvent) { team.targetTasks = questTasks; } team.GoTo(target, WayType.MAINSTREET, true); }
public void ChangeActivity(DetectiveActivity newActivity, iActivityPlace newPlace) { if (activity != newActivity) { if (activity == DetectiveActivity.IN_WAY) { lineRenderer.positionCount = 0; timeInWay = 0; } else if (activity == DetectiveActivity.IN_EVENT) { ((QuestEvent)startPlace).RemoveTeam(this); } activity = newActivity; foreach (Detective detective in detectives) { detective.ChangeActivity(newActivity, newPlace); } if (activity == DetectiveActivity.IN_WAY) { timeInWay = 0; } else if (activity == DetectiveActivity.IN_EVENT) { startPlace = newPlace; ((QuestEvent)newPlace).AddTeam(this); StartTask(); } else if (activity == DetectiveActivity.IN_OFFICE) { destroy = true; } else if (activity == DetectiveActivity.IN_HOME) { startPlace = detectives[0].home; GoToAction(Agency.GetInstantiate().GetOffice(), 10); } InterfaceManager.GetInstantiate().detectiveRow.ResetRow(); } else if (detectives[0].activityPlace != newPlace) { foreach (Detective detective in detectives) { detective.activityPlace = newPlace; } } }
public void ChangeActivity(DetectiveActivity newActivity, iActivityPlace newPlace) { if (activity != newActivity) { Office office = Agency.GetInstantiate().GetOffice(); if (activity == DetectiveActivity.IN_OFFICE) { office.detectivesInOffice.Remove(this); } else if (activity == DetectiveActivity.IN_HOME) { home.characterInHome = false; checkGoHome = false; } else if (activity == DetectiveActivity.IN_WAY) { } activity = newActivity; if (activity == DetectiveActivity.IN_OFFICE) { office.detectivesInOffice.Add(this); activityPlace = office; } else if (activity == DetectiveActivity.IN_HOME) { home.characterInHome = true; activityPlace = home; } else if (activity == DetectiveActivity.IN_WAY) { activityPlace = newPlace; } else if (activity == DetectiveActivity.IN_EVENT) { activityPlace = newPlace; } } }