public void PostInit() { CSRepairObject repm = gameObject.GetComponent <CSRepairObject>(); repm.transform.localScale = Vector3.one; repm.Init(m_id, CSMain.GetCreator(CSConst.ciDefNoMgCamp), false); }
IEnumerator CSTeam(float time) { if (SingleGameStory.curType == SingleGameStory.StoryScene.TrainingShip) { yield break; } yield return(new WaitForSeconds(time)); while (true) { mCScreator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (mCScreator != null) { mCSNpcs = CSMain.GetCSNpcs(mCScreator); mCSnpcTeam.setCSCreator(mCScreator); if (mCScreator.Assembly != null && mCSNpcs.Count > 0) { mCSnpcTeam.InitTeam(); mCSnpcTeam.AddInTeam(mCSNpcs, true); mCSnpcTeam.ReFlashTeam(); } } yield return(new WaitForSeconds(time)); } }
public override void OnCreate() { m_Instance = this; base.OnCreate(); if (Creator == null) { Creator = CSMain.GetCreator(CSConst.ciDefMgCamp); } FactoryUI.Init(); }
public override bool OnDragging(Ray cameraRay) { if (Pathea.SingleGameStory.curType != Pathea.SingleGameStory.StoryScene.MainLand || RandomDungenMgrData.InDungeon) { return(false); } bool canPutOut = base.OnDragging(cameraRay); // limited field bLimited = false; for (int i = 0; i < m_LimitedField.Count; i++) { if (Pathea.PeGameMgr.sceneMode != m_LimitedField[i].mode) { continue; } Vector3 pos = transform.position; float sqr_dis = m_LimitedField[i].radius * m_LimitedField[i].radius; if ((pos - m_LimitedField[i].center).sqrMagnitude < sqr_dis) { bLimited = true; break; } } CSCreator creator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (creator != null) { canPutOut = canPutOut && (creator.CanCreate((int)m_CEO.m_Type, transform.position) == CSConst.rrtSucceed && !bLimited); } m_NotInWaterOrCave = transform.position == Vector3.zero || (!CheckPosInCave() && !PETools.PEUtil.CheckPositionUnderWater(transform.position)); if (canPutOut) { canPutOut = canPutOut && m_NotInWaterOrCave; } //if (m_CEO.HasStarted) // OnItemOpGUIActive(); if (null != itemBounds) { itemBounds.activeState = canPutOut; } return(canPutOut); }
public override bool Init(int id) { if (!base.Init(id)) { return(false); } if (CSMain.GetCreator(CSConst.ciDefNoMgCamp) == null) { CSMain.InitOperatItemEvent += PostInit; return(true); } else { CSPowerPlantObject ppo = GetComponent <CSPowerPlantObject>(); return(CSConst.rrtSucceed == ppo.Init(id, CSMain.GetCreator(CSConst.ciDefNoMgCamp), false)); } }
public override bool Init(int id) { if (!base.Init(id)) { return(false); } if (CSMain.GetCreator(CSConst.ciDefNoMgCamp) == null) { CSMain.InitOperatItemEvent += PostInit; return(true); } else { CSRepairObject repm = gameObject.GetComponent <CSRepairObject>(); repm.transform.localScale = Vector3.one; return(CSConst.rrtSucceed == repm.Init(id, CSMain.GetCreator(CSConst.ciDefNoMgCamp), false)); } }
public static bool NpcMissionReady(PeEntity npc) { if (npc == null) { return(false); } if (npc.NpcCmpt == null) { return(false); } CSCreator mCScreator = npc.NpcCmpt.Creater; if (mCScreator == null) { mCScreator = CSMain.GetCreator(CSConst.ciDefMgCamp); } if (mCScreator == null || mCScreator.Assembly == null) { return(false); } ItemAsset.ItemObject item; if (npc.UseItem != null && NpcEatDb.CanEatSthFromStorages(npc, mCScreator.Assembly.Storages, out item)) { npc.UseItem.Use(item); } for (int i = 0; i < RecruitBuff.Length; i++) { npc.skEntity.CancelBuffById(RecruitBuff[i]); } for (int i = 0; i < InFeildBuff.Length; i++) { SkillSystem.SkEntity.MountBuff(npc.skEntity, InFeildBuff[i], new List <int>(), new List <float>()); } return(true); }
public static bool CallBackColonyNpcImmediately(PeEntity entity) { if (entity == null) { return(false); } if (entity.NpcCmpt == null) //|| == null || entity.NpcCmpt.Creater.Assembly == null { return(false); } CSCreator creator = entity.NpcCmpt.Creater; if (creator == null) { creator = CSMain.GetCreator(CSConst.ciDefMgCamp); } if (creator == null || creator.Assembly == null) { return(false); } //in assembly radius if (!IsOutRadiu(entity.position, creator.Assembly.Position, creator.Assembly.Radius)) { return(true); } Vector3 backPos = PETools.PEUtil.GetRandomPositionOnGroundForWander(creator.Assembly.Position, creator.Assembly.Radius * 0.7f, creator.Assembly.Radius); if (backPos == Vector3.zero) { backPos = creator.Assembly.Position; } entity.NpcCmpt.Req_Translate(backPos); return(true); }
void AddCSCreatorMission(NpcMissionData missionData) { //if (GameConfig.IsMultiMode) //{ // return; //} CSCreator creator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (creator == null) { return; } if (creator.Assembly == null) { return; } if (m_CurSelNpc != null) { if (m_CurSelNpc.Id < 20000 && m_CurSelNpc.Id > 19990) //冒险模式当中的声望任务id { return; } } int speMisID = 0; if (!m_CurSelNpc.IsRecruited()) { if (!creator.CanAddNpc()) { speMisID = MissionManager.m_SpecialMissionID31; } else { speMisID = MissionManager.m_SpecialMissionID16; } } if (missionData.m_CSRecruitMissionList.Count < 1) { if (speMisID != 0) { m_MissionList.Add(speMisID); } return; } if (missionData.m_CSRecruitMissionList[0] <= 0) { return; } for (int i = 0; i < missionData.m_CSRecruitMissionList.Count; i++) { if (!MissionManager.Instance.HadCompleteMission(missionData.m_CSRecruitMissionList[i])) { return; } } if (speMisID != 0) { m_MissionList.Add(speMisID); } }
public bool CheckAddMissionListID(int id, NpcMissionData missionData) { CSCreator creator; if (id == 0) { return(false); } if (id == MissionManager.m_SpecialMissionID9 || MissionManager.HasRandomMission(id)) { for (int m = 0; m < missionData.m_RecruitMissionList.Count; m++) { if (!MissionManager.Instance.HadCompleteMission(missionData.m_RecruitMissionList[m])) { return(false); } } if (RMRepository.m_RandomFieldMap.ContainsKey(id)) { if (missionData.mCurComMisNum >= RMRepository.m_RandomFieldMap[id].TargetIDMap.Count) { return(false); } } } else if (id == MissionManager.m_SpecialMissionID59 || id == MissionManager.m_SpecialMissionID60) { if (MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID58) && !MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID63)) { creator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (creator == null) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID61)) { if (PeGameMgr.IsMulti) { MissionManager.Instance.RequestCompleteMission(MissionManager.m_SpecialMissionID67); } else { MissionManager.Instance.CompleteMission(MissionManager.m_SpecialMissionID67); } GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID61, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } if (creator.Assembly == null) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID61)) { if (PeGameMgr.IsMulti) { MissionManager.Instance.RequestCompleteMission(MissionManager.m_SpecialMissionID67); } else { MissionManager.Instance.CompleteMission(MissionManager.m_SpecialMissionID67); } GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID61, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } int npcnum = StroyManager.Instance.GetMgCampNpcCount(); int creatornum = CSMain.s_MgCreator.GetEmptyBedCnt(); //若基地空床位<X,则弹出对话床位不足(任务506) if (creatornum < npcnum) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID62)) { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID62, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } //若基地床位>=X,则在对话后把地球营地所有NPC招募到基地(任务507) else { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID63)) { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID63, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } } } if (!MissionManager.Instance.IsGetTakeMission(id)) { return(false); } return(true); }
//bool bPut = false; public override bool OnCheckPutDown() { //OnItemOpGUIHide(); #if fasle HB_Entity entity = GetComponent <HB_Entity>(); if (entity != null) { if (ColonyManager.Instance == null) { return(false); } EntityMgrInst entityMgr = ColonyManager.Instance.GetEntityMgrSinglePlayer(); BuildingState r = entityMgr.CanRegister(entity); if (r == BuildingState.Succeed) { entity.Register(entityMgr); } // Show message box else if (r == BuildingState.NoAssembly) { MessageBox_N.ShowOkBox( "You need to build an Assembly building with its static field before you can place down other buildings as per colony safety regulations!"); return(false); } else if (r == BuildingState.OutOfMaxCount) { MessageBox_N.ShowOkBox( "The number of buildings of this type allowed by safety regulations in the current static field has been reached!"); return(false); } else if (r == BuildingState.OutOfAssemblyRange) { MessageBox_N.ShowMsgBox(MsgBoxType.Msg_OK, MsgInfoType.Null, "The building cannot be placed outside the static field in compliance with Colony Regulations Article 3 Section 2."); return(false); } } #endif // Put off Colonies if (!m_NotInWaterOrCave) { MessageBox_N.ShowOkBox(PELocalization.GetString(82209011)); return(false); } if (m_CEO != null) { if (bLimited) { MessageBox_N.ShowOkBox(PELocalization.GetString(3002311)); return(false); } CSCreator creator = CSMain.GetCreator(CSConst.ciDefMgCamp); int result = creator.CanCreate((int)m_CEO.m_Type, transform.position); if (result == CSConst.rrtHasAssembly) { MessageBox_N.ShowOkBox( PELocalization.GetString(8000087)); return(false); } else if (result == CSConst.rrtNoAssembly) { MessageBox_N.ShowOkBox( PELocalization.GetString(8000088)); return(false); } else if (result == CSConst.rrtOutOfRange) { MessageBox_N.ShowOkBox( PELocalization.GetString(8000105)); return(false); } else if (result == CSConst.rrtOutOfRadius) { MessageBox_N.ShowOkBox(PELocalization.GetString(8000089)); return(false); } else if (result == CSConst.rrtTooCloseToNativeCamp) { MessageBox_N.ShowOkBox(PELocalization.GetString(ColonyErrorMsg.TOO_CLOSE_TO_NATIVE_CAMP0)); return(false); } else if (result == CSConst.rrtTooCloseToNativeCamp1) { MessageBox_N.ShowOkBox(PELocalization.GetString(ColonyErrorMsg.TOO_CLOSE_TO_NATIVE_CAMP1)); return(false); } else if (result == CSConst.rrtTooCloseToNativeCamp2) { MessageBox_N.ShowOkBox(PELocalization.GetString(ColonyErrorMsg.TOO_CLOSE_TO_NATIVE_CAMP2)); return(false); } else if (result == CSConst.rrtAreaUnavailable) { // MessageBox_N.ShowOkBox(PELocalization.GetString(ColonyErrorMsg.AREA_UNAVAILABLE)); return(false); } m_CEO.m_BoundState = 0; } //bPut = true; return(true); }
public void PostInit() { CSPowerPlantObject ppo = GetComponent <CSPowerPlantObject>(); ppo.Init(m_id, CSMain.GetCreator(CSConst.ciDefNoMgCamp), false); }