private void Start() { // get the transform of the main camera if (Camera.main != null) { m_Cam = Camera.main.transform; } else { Debug.LogWarning( "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls."); // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them! } // get the third person character ( this should never be null due to require component ) m_Character = GetComponentInChildren<HumanCharacter>(); m_CharacterAim = GetComponent<HumanMovement>(); //col = GetComponent<CapsuleCollider>(); //startHeight = col.height; m_RigidBody = GetComponent<Rigidbody>(); anim = GetComponentInChildren<Animator>(); charStats = GetComponent<CharacterStats>(); weaponManager = GetComponent<WeaponManager>(); cameraFunctions = Camera.main.gameObject.GetComponentInParent<FreeCameraLook>(); offsetCross = cameraFunctions.crosshairOffsetWiggle; //m_RigidBody.AddForce(1, 1, 1); //m_Character.Move(m_Move, crouch, m_Jump, false, lookPos); }
public HumanCharacter SpawnRandomHumanCharacter(string name, AISquad squad, Vector3 loc) { HumanCharacter character = GameObject.Instantiate(Resources.Load("HumanCharacter") as GameObject).GetComponent <HumanCharacter>(); character.CharacterID = name; character.Initialize(); character.MyNavAgent.enabled = false; character.CharacterType = CharacterType.Human; character.SquadID = squad.ID; character.Faction = squad.Faction; GameManager.Inst.ItemManager.LoadNPCInventory(character.Inventory, squad.Faction, squad.Tier); character.MyAI.WeaponSystem.LoadWeaponsFromInventory(false); character.MyStatus.MaxHealth = 100; character.MyStatus.Health = 100; character.transform.position = loc; //character.transform.position = new Vector3(70.76f, 3.296f, -23.003f); character.MyNavAgent.enabled = true; character.Name = GameManager.Inst.DBManager.DBHandlerDialogue.GetRandomName(); character.gameObject.name = character.gameObject.name + _counter.ToString(); _counter++; return(character); }
public void TriggerOnSelectActiveMember(HumanCharacter prev) { if (OnSelectActiveMember != null) { OnSelectActiveMember(prev); } }
private void UpdateBoostIndicators() { foreach (UISprite indicator in IndicatorSprites) { NGUITools.SetActive(indicator.gameObject, false); } List <PlayerStatBoost> boosts = GameManager.Inst.PlayerControl.Survival.GetStatBoosts(); foreach (PlayerStatBoost boost in boosts) { if (_boostIndicators.ContainsKey(boost.Type)) { if (!boost.IsEnded) { NGUITools.SetActive(_boostIndicators[boost.Type].gameObject, true); } } } HumanCharacter player = GameManager.Inst.PlayerControl.SelectedPC; //check if bleeding if (player.MyStatus.BleedingSpeed > 0) { NGUITools.SetActive(IndicatorSprites[0].gameObject, true); } //check if there's food if (GameManager.Inst.PlayerControl.Survival.GetEatenCalories() > 0) { NGUITools.SetActive(IndicatorSprites[1].gameObject, true); } }
public void Show(HumanCharacter character) { this.character = character; this.pic.sprite = Resources.Load <Sprite>("Images/Pics/" + character.characterName); this.areYouSureText.text = "Are you sure you want to sacrifice " + character.characterName + " ?"; for (int i = 0; i < this.prosPanel.childCount; ++i) { Transform proPanel = this.prosPanel.GetChild(i); if (character.prosKeepAlive.Length > i) { proPanel.GetComponentInChildren <Text>().text = character.prosKeepAlive[i]; } proPanel.gameObject.SetActive(character.prosKeepAlive.Length > i); } for (int i = 0; i < this.consPanel.childCount; ++i) { Transform conPanel = this.consPanel.GetChild(i); if (character.consKeepAlive.Length > i) { conPanel.GetComponentInChildren <Text>().text = character.consKeepAlive[i]; } conPanel.gameObject.SetActive(character.consKeepAlive.Length > i); } this.gameObject.SetActive(true); }
public void SetFollowTaskForSelectedMember(HumanCharacter target) { SelectedMember.MyAI.BlackBoard.FollowTarget = target; SelectedMember.MyAI.SetDynamicyGoal(MemberFollowGoal, 0); RefreshMarkerForMember(SelectedMember); _lastAssignedMember = SelectedMember; }
public override bool Evaluate(int compareValue, int op) { if (!IsActive) { return(false); } if (!IsForDurability) { int value = GetValue(); return(StaticUtility.CompareIntWithOp(value, compareValue, op)); } else { //get a list of all items with ItemID //see if any of them has durability percent greater than DurabilityPercent float desiredDurabilityPercent = Convert.ToSingle(compareValue) / 100f; HumanCharacter player = GameManager.Inst.PlayerControl.SelectedPC; List <GridItemData> items = player.Inventory.FindItemsInBackpack(ItemID); foreach (GridItemData item in items) { float durability = item.Item.Durability / item.Item.MaxDurability; if (durability >= desiredDurabilityPercent) { return(true); } } } return(false); }
private void Start() { // get the transform of the main camera if (Camera.main != null) { m_Cam = Camera.main.transform; } else { Debug.LogWarning( "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls."); // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them! } // get the third person character ( this should never be null due to require component ) m_Character = GetComponentInChildren <HumanCharacter>(); m_CharacterAim = GetComponent <HumanMovement>(); //col = GetComponent<CapsuleCollider>(); //startHeight = col.height; m_RigidBody = GetComponent <Rigidbody>(); anim = GetComponentInChildren <Animator>(); charStats = GetComponent <CharacterStats>(); weaponManager = GetComponent <WeaponManager>(); cameraFunctions = Camera.main.gameObject.GetComponentInParent <FreeCameraLook>(); offsetCross = cameraFunctions.crosshairOffsetWiggle; //m_RigidBody.AddForce(1, 1, 1); //m_Character.Move(m_Move, crouch, m_Jump, false, lookPos); }
void OnTriggerExit(Collider other) { HumanCharacter human = other.GetComponent <HumanCharacter>(); if (human != null) { human.CurrentDoor = null; } }
void OnTriggerExit(Collider other) { HumanCharacter human = other.GetComponent <HumanCharacter>(); if (human != null && human.MyAI.ControlType == AIControlType.Player) { GameManager.Inst.PlayerControl.CurrentEntrance = null; } }
void OnTriggerEnter(Collider other) { //Debug.Log("collision! " + other.name); HumanCharacter human = other.GetComponent <HumanCharacter>(); if (human != null && human.MyAI.ControlType == AIControlType.Player) { GameManager.Inst.PlayerControl.CurrentEntrance = this; } }
public void SetGuardTaskForSelectedMember(int guardLevel, Vector3 guardDirection, Vector3 guardPos, float range) { SelectedMember.MyAI.BlackBoard.GuardLevel = guardLevel; SelectedMember.MyAI.BlackBoard.GuardDirection = guardDirection; SelectedMember.MyAI.BlackBoard.PatrolLoc = guardPos; SelectedMember.MyAI.BlackBoard.PatrolRange = new Vector3(range, 5, range); SelectedMember.MyAI.BlackBoard.HasPatrolInfo = true; SelectedMember.MyAI.SetDynamicyGoal(MemberGuardGoal, 0); _lastAssignedMember = SelectedMember; }
public DialogueHandle LoadNPCDialogue(HumanCharacter npc) { if (npc == null) { return(null); } XmlDocument xmlDoc = new XmlDocument(); string path = Application.dataPath + "/GameData/Dialogue/"; string dialogueID = npc.CharacterID; if (!File.Exists(path + dialogueID + ".xml")) { dialogueID = npc.SquadID; if (!File.Exists(path + dialogueID + ".xml")) { dialogueID = npc.Faction.ToString(); if (!File.Exists(path + dialogueID + ".xml")) { dialogueID = "Default"; } } } string file = File.ReadAllText(path + dialogueID + ".xml"); try { xmlDoc.LoadXml(file); } catch (XmlException) { return(null); } CurrentDialogXML = xmlDoc; string introText = ""; string nextNode = ""; DialogueHandle handle = new DialogueHandle(); if (GetDialogueIntro(out introText, out nextNode)) { handle.NextNode = nextNode; handle.IntroText = introText; return(handle); } return(null); }
public bool GiveSmallRation(HumanCharacter character) { if (this.rations <= 0) { return(false); } this.rations--; character.hungry = false; this.OnGameDataChanged(); return(true); }
void OnTriggerEnter(Collider other) { //Debug.Log("collision! " + other.name); HumanCharacter human = other.GetComponent <HumanCharacter>(); if (human != null) { human.CurrentDoor = this; //Debug.Log("assigning current door for " + human.name); } }
private void RefillHouseHoldSquadMembers() { if (CurrentSquad == null || MaxOccupants <= 0) { return; } if (GameManager.Inst.NPCManager.GetFactionData(CurrentSquad.Faction).CharacterType == CharacterType.Mutant) { int numberToSpawn = MaxOccupants - CurrentSquad.Members.Count; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); MutantCharacter character = GameManager.Inst.NPCManager.SpawnRandomMutantCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } else if (GameManager.Inst.NPCManager.GetFactionData(CurrentSquad.Faction).CharacterType == CharacterType.Animal) { int numberToSpawn = MaxOccupants - CurrentSquad.Members.Count; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); MutantCharacter character = GameManager.Inst.NPCManager.SpawnRandomAnimalCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } else { int currentMembersCount = GetAllMembersCount(); if (currentMembersCount < MaxOccupants) { //first create a commander if there isn't one if (!CurrentSquad.IsThereCommander() && CommanderIdleDest != null) { string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); HumanCharacter commander = GameManager.Inst.NPCManager.SpawnRandomHumanCharacter(modelID, CurrentSquad, CommanderIdleDest.transform.position); commander.IsCommander = true; CurrentSquad.AddMember(commander); CurrentSquad.Commander = commander; } int numberToSpawn = MaxOccupants - currentMembersCount; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); HumanCharacter character = GameManager.Inst.NPCManager.SpawnRandomHumanCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } } }
public void FadeOutCallBack() { HumanCharacter character = GameManager.Inst.PlayerControl.SelectedPC; character.transform.position = OtherPortal.SpawnPoint.position; character.Destination = character.transform.position; GameManager.Inst.CameraController.ResetCamera(); GameManager.Inst.WorldManager.ChangeEnvironment(OtherPortal.Environment); GameManager.Inst.SoundManager.SetMusic(OtherPortal.Environment, GameManager.Inst.WorldManager.IsDayTime); Time.timeScale = 1; }
public bool GiveFullRation(HumanCharacter character) { if (this.rations <= 1) { return(false); } this.rations -= 2; character.hungry = false; character.Health += 20; this.OnGameDataChanged(); return(true); }
public bool Sacrifice(HumanCharacter character) { if (character.IsDestroyed()) { return(false); } character.Health = 0; this.UpdateOtherCharacters(); this.rations += 9; this.OnGameDataChanged(); return(true); }
public void SaveInventoryData(HumanCharacter character) { List <GridItemData> datas = character.Inventory.Backpack; datas.Clear(); foreach (GridItem item in BackpackGrid.Items) { GridItemData data = new GridItemData(item.Item, item.ColumnPos, item.RowPos, item.Orientation, item.GetQuantity()); datas.Add(data); } }
private string GetSpeakerName() { HumanCharacter speaker = (HumanCharacter)GameManager.Inst.PlayerControl.SelectedPC.MyAI.BlackBoard.InteractTarget; if (speaker == null) { return(""); } else { return(speaker.Name); } }
void Start() { agent = GetComponent <NavMeshAgent>(); charMove = GetComponentInChildren <HumanCharacter>(); anim = GetComponentInChildren <Animator>(); weaponManager = GetComponent <WeaponManager>(); Transform[] wayp = waypointHolder.GetComponentsInChildren <Transform>(); foreach (Transform tr in wayp) { if (tr != waypointHolder.transform) { waypoints.Add(tr); } } }
public void Pause() { GameManager.Inst.CameraController.SetCameraMode(CameraModeEnum.Party); _lastAssignedMember = null; GameManager.Inst.CursorManager.SetCursorState(CursorState.Default); InputEventHandler.OnIssueTaskRMB -= GameManager.Inst.PlayerControl.OnIssueTaskMouseDown; InputEventHandler.OnIssueTaskRMB += GameManager.Inst.PlayerControl.OnIssueTaskMouseDown; InputEventHandler.OnIssueTaskLMB -= GameManager.Inst.PlayerControl.OnIssueTaskMouseDown; SelectedMemberTask = PartyTasks.Default; InputEventHandler.Instance.TriggerOnGamePause(); }
private void RepositionateTeamMembers() { List <HumanCharacter> charactersToPlace = new List <HumanCharacter>(this.otherCharacters) { this.player }; float angle = 360 / charactersToPlace.Count; for (Vector2 position = this.startPosition; charactersToPlace.Count > 0; position = position.Rotate(angle)) { int randomCharacterIndex = UnityEngine.Random.Range(0, charactersToPlace.Count); HumanCharacter c = charactersToPlace[randomCharacterIndex]; charactersToPlace.RemoveAt(randomCharacterIndex); c.transform.position = position; } }
public void PerSecondUpdate() { HumanCharacter player = GameManager.Inst.PlayerControl.SelectedPC; //update running speed if (player.MyStatus.CarryWeight <= player.MyStatus.MaxCarryWeight) { float weightRatio = player.MyStatus.CarryWeight / player.MyStatus.MaxCarryWeight; player.MyStatus.RunSpeedModifier = 0.8f + (1 - weightRatio) * 0.4f; player.MyStatus.SprintSpeedModifier = 1.0f + (1 - weightRatio) * 0.2f; player.MyStatus.StaminaReduceMult = Mathf.Clamp01(0.4f + weightRatio * 0.6f); } else { //only allow walk and sprint player.MyStatus.RunSpeedModifier = 0.8f; player.MyStatus.SprintSpeedModifier = 0.7f; player.MyStatus.StaminaReduceMult = 1.5f; } //update stamina restore speed player.MyStatus.StaminaRestoreSpeed = 1 + (player.MyStatus.Energy / player.MyStatus.MaxEnergy) * 5; //increase energy if there's consumed calories if (_eatenCalories > 0) { float amount = 1; _eatenCalories -= amount; player.MyStatus.SetEnergy(player.MyStatus.Energy + amount); } //update boosts List <PlayerStatBoost> boostCopy = new List <PlayerStatBoost>(_statBoosts); foreach (PlayerStatBoost boost in boostCopy) { if (boost.IsEnded) { _statBoosts.Remove(boost); } else { boost.PerSecondUpdate(); } } }
private void ClearAIForMember(HumanCharacter member) { member.MyAI.ForceStopCurrentAction(); member.MyAI.ClearDynamicGoal(0); member.SendCommand(CharacterCommands.ReleaseTrigger); if (member.UpperBodyState == HumanUpperBodyStates.Aim && Input.GetKey(KeyCode.Mouse1) && member == SelectedMember && member.MyAI.ControlType == AIControlType.Player) { member.SendCommand(CharacterCommands.Aim); } else { member.SendCommand(CharacterCommands.StopAim); } member.SendCommand(CharacterCommands.Idle); }
public void Enter(HumanCharacter character) { if (IsLocked) { //here check if player has key int keyCount = GameManager.Inst.PlayerControl.SelectedPC.Inventory.CountItemsInBackpack(KeyItemID); if (keyCount > 0) { //play unlock key sound IsLocked = false; } else { //play locked door sound if (SoundType == ContainerSoundType.Wood) { AudioClip clip = GameManager.Inst.SoundManager.GetClip("WoodDoorLocked"); DoorSound.PlayOneShot(clip, 0.6f); } else { AudioClip clip = GameManager.Inst.SoundManager.GetClip("MetalDoorLocked"); DoorSound.PlayOneShot(clip, 0.6f); } return; } } //adjust environment for player if (character.MyAI.ControlType == AIControlType.Player) { Time.timeScale = 0; GameManager.Inst.UIManager.FadingPanel.FadeOutAndInCallBack(1, 1, 1, FadeOutCallBack); character.SendCommand(CharacterCommands.Idle); } else { character.transform.position = OtherPortal.SpawnPoint.position; character.Destination = character.transform.position; character.SendCommand(CharacterCommands.Idle); } DoorSound.Play(); }
public void RemoveHumanCharacter(HumanCharacter character) { if (_humansInScene.Contains(character)) { _humansInScene.Remove(character); } if (_deadBodies.ContainsKey((Character)character)) { _deadBodies.Remove((Character)character); } _allCharacters.Remove((Character)character); if (_fadeTimers.ContainsKey((Character)character)) { _fadeTimers.Remove((Character)character); } GameObject.Destroy(character.gameObject); }
public void Initialize() { SelectedPC = GameObject.Find("HumanCharacter").GetComponent<HumanCharacter>(); SelectedPC.Initialize(); _numberOfRocks = 10; InputEventHandler.OnCameraSwitchMode += SwitchCameraMode; InputEventHandler.OnPlayerMove += this.OnPlayerMove; InputEventHandler.OnPlayerStopMove += this.OnPlayerStopMove; InputEventHandler.OnWeaponPullTrigger += this.OnWeaponPullTrigger; InputEventHandler.OnWeaponReleaseTrigger += this.OnWeaponReleaseTrigger; InputEventHandler.OnWeaponAim += this.OnWeaponAim; InputEventHandler.OnWeaponStopAim += this.OnWeaponStopAim; InputEventHandler.OnKick += this.OnKick; InputEventHandler.OnPlayerMoveLeft += this.OnPlayerMoveLeft; InputEventHandler.OnPlayerMoveRight += this.OnPlayerMoveRight; InputEventHandler.OnPlayerMoveUp += this.OnPlayerMoveUp; InputEventHandler.OnPlayerMoveDown += this.OnPlayerMoveDown; InputEventHandler.OnPlayerStopMoveLeft += this.OnPlayerStopMoveLeft; InputEventHandler.OnPlayerStopMoveRight += this.OnPlayerStopMoveRight; InputEventHandler.OnPlayerStopMoveUp += this.OnPlayerStopMoveUp; InputEventHandler.OnPlayerStopMoveDown += this.OnPlayerStopMoveDown; InputEventHandler.OnPlayerStartSprint += this.OnPlayerStartSprint; InputEventHandler.OnPlayerStopSprint += this.OnPlayerStopSprint; InputEventHandler.OnPlayerToggleSneak += OnToggleSneaking; InputEventHandler.OnPlayerThrow += OnThrow; InputEventHandler.OnPlayerSwitchWeapon2 += OnToggleWeapon2; InputEventHandler.OnPlayerSwitchWeapon1 += OnToggleWeapon1; InputEventHandler.OnPlayerReload += OnWeaponReload; _moveDirection = PlayerMoveDirEnum.Stop; _moveDirection2 = PlayerMoveDirEnum.Stop; SelectedPC.CurrentStance = HumanStances.Run; }
public override void Show() { NGUITools.SetActive(this.gameObject, true); this.IsActive = true; if (_entries == null) { _entries = new Stack <DialogueEntry>(); } if (_options == null) { _options = new List <DialogueOptionEntry>(); } if (_topics == null) { _topics = new List <TopicEntry>(); } InputEventHandler.Instance.State = UserInputState.Dialogue; HumanCharacter npc = (HumanCharacter)GameManager.Inst.PlayerControl.SelectedPC.MyAI.BlackBoard.InteractTarget; DialogueHandle handle = GameManager.Inst.DBManager.DBHandlerDialogue.LoadNPCDialogue(npc); if (handle == null) { return; } ClearDialogue(); ClearTopics(); LoadIntro(handle.IntroText); _currentNodeID = handle.NextNode; _rootNode = handle.NextNode; Time.timeScale = 0; RefreshDialogue(_currentNodeID, true); }
private void SaveInventoryData(HumanCharacter character) { CharacterInventory inventory = character.Inventory; inventory.ArmorSlot = null; inventory.HeadSlot = null; inventory.RifleSlot = null; inventory.SideArmSlot = null; inventory.ThrowSlot = null; inventory.ToolSlot = null; if (BodySlots[0].Items.Count > 0) { inventory.ArmorSlot = BodySlots[0].Items[0].Item; } if (BodySlots[1].Items.Count > 0) { inventory.HeadSlot = BodySlots[1].Items[0].Item; } if (BodySlots[2].Items.Count > 0) { inventory.RifleSlot = BodySlots[2].Items[0].Item; } if (BodySlots[3].Items.Count > 0) { inventory.SideArmSlot = BodySlots[3].Items[0].Item; } if (BodySlots[4].Items.Count > 0) { inventory.ThrowSlot = BodySlots[4].Items[0].Item; } if (BodySlots[5].Items.Count > 0) { inventory.ToolSlot = BodySlots[5].Items[0].Item; } }
public void SetActiveMember(HumanCharacter character) { SelectedMember.MyAI.ControlType = AIControlType.PlayerTeam; RefreshMarkerForMember(SelectedMember); HumanCharacter prev = SelectedMember; SelectedMember = character; SelectedMember.MyAI.ControlType = AIControlType.Player; RefreshMarkerForMember(SelectedMember); if (SelectedMember.CurrentStance != HumanStances.Crouch) { SelectedMember.CurrentStance = HumanStances.Run; } if (!_playerControl.IsGamePaused) { GameManager.Inst.CameraController.SetCameraMode(CameraModeEnum.Leader); ClearAIForMember(SelectedMember); } InputEventHandler.Instance.TriggerOnSelectActiveMember(prev); }
private void SaveInventoryData(HumanCharacter character) { List<GridItemData> datas = character.Inventory.Backpack; datas.Clear(); foreach(GridItem item in BackpackGrid.Items) { GridItemData data = new GridItemData(item.Item, item.ColumnPos, item.RowPos, item.Orientation, item.GetQuantity()); datas.Add(data); } }
void Start() { agent = GetComponent<NavMeshAgent>(); charMove = GetComponentInChildren<HumanCharacter>(); anim = GetComponentInChildren<Animator>(); weaponManager = GetComponent<WeaponManager>(); Transform[] wayp = waypointHolder.GetComponentsInChildren<Transform>(); foreach (Transform tr in wayp) { if (tr != waypointHolder.transform) waypoints.Add(tr); } }
public void SetActiveMember(HumanCharacter character) { SelectedMember.MyAI.ControlType = AIControlType.PlayerTeam; RefreshMarkerForMember(SelectedMember); HumanCharacter prev = SelectedMember; SelectedMember = character; SelectedMember.MyAI.ControlType = AIControlType.Player; RefreshMarkerForMember(SelectedMember); if(SelectedMember.CurrentStance != HumanStances.Crouch) { SelectedMember.CurrentStance = HumanStances.Run; } if(!_playerControl.IsGamePaused) { GameManager.Inst.CameraController.SetCameraMode(CameraModeEnum.Leader); ClearAIForMember(SelectedMember); } InputEventHandler.Instance.TriggerOnSelectActiveMember(prev); }
public void Initialize() { SelectedMember = GameObject.Find("HumanCharacter").GetComponent<HumanCharacter>(); SelectedMember.Initialize(); RefreshMarkerForMember(SelectedMember); /* HumanCharacter member2 = GameObject.Find("HumanCharacter3").GetComponent<HumanCharacter>(); member2.Initialize(); RefreshMarkerForMember(member2); //for testing member2.MyAI.BlackBoard.FollowTarget = SelectedMember; */ Members.Add(SelectedMember); //Members.Add(member2); MemberGuardGoal = GameManager.Inst.DBManager.DBHandlerAI.GetGoalByID(6); MemberGuardGoal.Priority = 0; MemberFollowGoal = GameManager.Inst.DBManager.DBHandlerAI.GetGoalByID(8); MemberFollowGoal.Priority = 0; //initialize inventory and then load weapons to prefab GameManager.Inst.ItemManager.LoadPartyInventory(); RefreshAllMemberArmors(); RefreshAllMemberWeapons(); }
private void Start() { // get the transform of the main camera if (Camera.main != null) { m_Cam = Camera.main.transform; } else { Debug.LogWarning( "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls."); // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them! } // get the third person character ( this should never be null due to require component ) m_Character = GetComponent<HumanCharacter>(); m_CharacterAim = GetComponent<New_Movement>(); col = GetComponent<CapsuleCollider>(); startHeight = col.height; anim = GetComponent<Animator>(); weaponManager = GetComponent<WeaponManager>(); cameraFunctions = Camera.main.transform.root.GetComponent<FreeCameraLook>(); offsetCross = cameraFunctions.crosshairOffsetWiggle; }
public void OnSelectActiveMember(HumanCharacter prev) { SaveInventoryData(prev); RebuildInventory(); DropDiscardedItems(); }
public List<Topic> GetNPCTopics(HumanCharacter npc, HumanCharacter initiator) { List<Topic> topics = new List<Topic>(); topics.Add(new Topic("3", "Trade", TopicType.Trade)); topics.Add(new Topic("5", "Change Subject", TopicType.Return)); topics.Add(new Topic("4", "Goodbye", TopicType.Exit)); //topics.Add(new Topic("1", "This place", TopicType.Info)); //topics.Add(new Topic("2", "Life in the Zone", TopicType.Info)); XmlNodeList topicList = CurrentDialogXML.GetElementsByTagName("topic"); int tempIndex = 0; if(topicList.Count > 0) { foreach(XmlNode topic in topicList) { string id = ""; string response = ""; string nextNode = ""; string title = ""; XmlNodeList nodeContent = topic.ChildNodes; foreach(XmlNode nodeItem in nodeContent) { if(nodeItem.Name == "id") { id = nodeItem.InnerText; } if(nodeItem.Name == "response") { response = nodeItem.InnerText; } if(nodeItem.Name == "next_node") { nextNode = nodeItem.InnerText; } if(nodeItem.Name == "title") { title = nodeItem.InnerText; } } if(id == "") { id = "temp" + tempIndex; } if(title == "") { title = GetTopicTitle(id); } Topic newTopic = new Topic(id, title, TopicType.Info); newTopic.Response = response; newTopic.NextNode = nextNode; topics.Add(newTopic); tempIndex ++; } } return topics; }
public DialogueHandle LoadNPCDialogue(HumanCharacter npc) { XmlDocument xmlDoc = new XmlDocument(); string path = Application.dataPath + "/GameData/Dialogue/"; string file = File.ReadAllText(path + "BaldMan.xml"); xmlDoc.LoadXml(file); CurrentDialogXML = xmlDoc; string introText = ""; string nextNode = ""; DialogueHandle handle = new DialogueHandle(); if(GetDialogueIntro(out introText, out nextNode)) { handle.NextNode = nextNode; handle.IntroText = introText; return handle; } return null; }
public void RefreshMarkerForMember(HumanCharacter member) { /* if(member.Markers.CircleFriendly == null) { GameObject circle = GameObject.Instantiate(Resources.Load("CharCircleFriendly")) as GameObject; member.Markers.CircleFriendly = circle.GetComponent<SpriteRenderer>(); circle.transform.parent = member.transform; circle.transform.localPosition = new Vector3(0, 0.01f, 0); circle.transform.localEulerAngles = new Vector3(-90, 0, 0); member.Markers.CircleFriendly.enabled = false; } if(member.Markers.CircleSelected == null) { GameObject circle = GameObject.Instantiate(Resources.Load("CharCircleSelected")) as GameObject; member.Markers.CircleSelected = circle.GetComponent<SpriteRenderer>(); circle.transform.parent = member.transform; circle.transform.localPosition = new Vector3(0, 0.01f, 0); circle.transform.localEulerAngles = new Vector3(-90, 0, 0); member.Markers.CircleSelected.enabled = false; } if(member.Markers.TaskMarker == null) { GameObject marker = GameObject.Instantiate(Resources.Load("GuardTaskMarker")) as GameObject; member.Markers.TaskMarker = marker.GetComponent<SpriteRenderer>(); marker.transform.position = new Vector3(0, 0.01f, 0); marker.transform.eulerAngles = new Vector3(-90, 0, 0); member.Markers.TaskMarker.enabled = false; } if(member.Markers.CircleEnemyTarget == null) { GameObject marker = GameObject.Instantiate(Resources.Load("CharCircleEnemy")) as GameObject; member.Markers.CircleEnemyTarget = marker.GetComponent<SpriteRenderer>(); marker.transform.position = new Vector3(0, 0.01f, 0); marker.transform.eulerAngles = new Vector3(-90, 0, 0); member.Markers.TaskMarker.enabled = false; } if(member.Markers.TeamFollowArrow == null) { GameObject marker = GameObject.Instantiate(Resources.Load("TeamFollowArrow")) as GameObject; member.Markers.TeamFollowArrow = marker.GetComponent<SpriteRenderer>(); marker.transform.position = new Vector3(0, 0.01f, 0); marker.transform.eulerAngles = new Vector3(90, 0, 0); member.Markers.TeamFollowArrow.enabled = false; } if(member.MyAI.ControlType == AIControlType.Player) { member.Markers.CircleFriendly.enabled = false; member.Markers.CircleSelected.enabled = true; member.Markers.CircleEnemyTarget.enabled = true; if(_playerControl.IsGamePaused) { GoapGoal topGoal = member.MyAI.GetDynamicGoal(0); if(topGoal == null) { member.Markers.TaskMarker.enabled = false; member.Markers.TeamFollowArrow.enabled = false; } else { if(topGoal.Name == "Defend Position") { if(member.MyAI.BlackBoard.GuardConfigStage >= 1) { member.Markers.TaskMarker.enabled = true; } else { member.Markers.TaskMarker.enabled = false; } member.Markers.TeamFollowArrow.enabled = false; } else if(topGoal.Name == "Follow target") { member.Markers.TaskMarker.enabled = false; member.Markers.TeamFollowArrow.enabled = true; } else { member.Markers.TaskMarker.enabled = false; member.Markers.TeamFollowArrow.enabled = false; } } } else { member.Markers.TaskMarker.enabled = false; member.Markers.TeamFollowArrow.enabled = false; } } else if(member.MyAI.ControlType == AIControlType.PlayerTeam) { member.Markers.CircleFriendly.enabled = true; member.Markers.CircleSelected.enabled = false; member.Markers.TaskMarker.enabled = false; member.Markers.CircleEnemyTarget.enabled = false; member.Markers.TeamFollowArrow.enabled = false; } */ }
// this constructor will be used by the other one public HumanAnimStateGoForward(HumanCharacter parentCharacter) { this.ParentCharacter = parentCharacter; Initialize(); }
public void OnSelectActiveMember(HumanCharacter prev) { UpdateButtonState(); }
private void SaveInventoryData(HumanCharacter character) { CharacterInventory inventory = character.Inventory; inventory.ArmorSlot = null; inventory.HeadSlot = null; inventory.RifleSlot = null; inventory.SideArmSlot = null; inventory.ThrowSlot = null; inventory.ToolSlot = null; if(BodySlots[0].Items.Count > 0) { inventory.ArmorSlot = BodySlots[0].Items[0].Item; } if(BodySlots[1].Items.Count > 0) { inventory.HeadSlot = BodySlots[1].Items[0].Item; } if(BodySlots[2].Items.Count > 0) { inventory.RifleSlot = BodySlots[2].Items[0].Item; } if(BodySlots[3].Items.Count > 0) { inventory.SideArmSlot = BodySlots[3].Items[0].Item; } if(BodySlots[4].Items.Count > 0) { inventory.ThrowSlot = BodySlots[4].Items[0].Item; } if(BodySlots[5].Items.Count > 0) { inventory.ToolSlot = BodySlots[5].Items[0].Item; } }
public void TriggerOnSelectActiveMember(HumanCharacter prev) { if(OnSelectActiveMember != null) { OnSelectActiveMember(prev); } }
public void AddHumanCharacter(HumanCharacter character) { _humansInScene.Add(character); }
private void ClearAIForMember(HumanCharacter member) { member.MyAI.ForceStopCurrentAction(); member.MyAI.ClearDynamicGoal(0); member.SendCommand(CharacterCommands.ReleaseTrigger); if(member.UpperBodyState == HumanUpperBodyStates.Aim && Input.GetKey(KeyCode.Mouse1) && member == SelectedMember && member.MyAI.ControlType == AIControlType.Player) { member.SendCommand(CharacterCommands.Aim); } else { member.SendCommand(CharacterCommands.StopAim); } member.SendCommand(CharacterCommands.Idle); }
// this constructor will be used by the other one public HumanAnimStateIdle(HumanCharacter parentCharacter) { this.ParentCharacter = parentCharacter; Initialize(); }
public void SetAttackTaskForSelectedMember(Character target) { SelectedMember.MyAI.BlackBoard.TargetEnemy = target; SelectedMember.MyAI.BlackBoard.IsTargetLocked = true; WorkingMemoryFact fact = SelectedMember.MyAI.WorkingMemory.FindExistingFact(FactType.KnownEnemy, target); if(fact == null) { //didn't find it in working memory, create a new fact fact = SelectedMember.MyAI.WorkingMemory.AddFact(FactType.KnownEnemy, target, target.transform.position, 0.99f, 0.01f); fact.ThreatLevel = 1f; fact.ThreatDropRate = 0.03f; } else { //found it in working memory, refresh confidence level fact.Confidence = 0.99f; fact.LastKnownPos = target.transform.position; } //SelectedMember.MyAI.ClearDynamicGoal(0); _lastAssignedMember = SelectedMember; }