public void RegisterUsedGadget(E_ItemID id) { if (Gadgets.ContainsKey(id)) { Gadgets[id].RegisterUsedItem(); } }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { m_Owner = Player.GetPlayer(info.networkView.owner).Owner; //Transform.rotation.SetLookRotation(info.networkView.initialData.ReadVector3()); // Transform.eulerAngles = new Vector3(-90, 0, 0); // f**k off !!!! info.networkView.initialData.ReadVector3(); ItemID = info.networkView.initialData.Read <E_ItemID>(); m_Owner.GadgetsComponent.RegisterLiveGadget(ItemID, GameObject); GameObjectDecal.SetActive(false); //State = E_State.Sweeping; if (uLink.Network.isServer == false) { Icons.SetTeamIcon(m_Owner.Team); StartCoroutine(HideOnClient()); return; } else { StartCoroutine(SweepForEnemy()); } }
public void UnRegisterLiveGadget(E_ItemID id, GameObject g) { if (Gadgets.ContainsKey(id)) { Gadgets[id].UnRegisterPlacedObject(g); } }
bool ShouldKeepMotion(E_ItemID id) { return(true); /* if ( id == E_ItemID.GrenadeEMP || * id == E_ItemID.GrenadeEMPII || * id == E_ItemID.GrenadeFlash || * id == E_ItemID.GrenadeFrag || * id == E_ItemID.GrenadeFragII || * id == E_ItemID.SentryGun || * id == E_ItemID.SentryGunII || * id == E_ItemID.SentryGunRail || * id == E_ItemID.SentryGunRockets|| * id == E_ItemID.BoxAmmo || * id == E_ItemID.BoxAmmoII || * id == E_ItemID.BoxHealth || * id == E_ItemID.BoxHealthII * ) * { * return true; * } * * return false; */ }
public void ConsumableItemUsed(E_ItemID id) { int index = PlayerData.InventoryList.Items.FindIndex(p => p.ID == id); if (index < 0) { return; } PPIItemData itemData = PlayerData.InventoryList.Items[index]; MFDebugUtils.Assert(itemData.IsValid()); itemData.Count--; PlayerData.InventoryList.Items[index] = itemData; if (uLink.Network.isServer) { //SEND TO CLOUD !!!! ItemSettings settings = ItemSettingsManager.Instance.Get(id); CloudServices.GetInstance() .ModifyItem(PrimaryKey, PPIManager.ProductID, settings.GUID, "Count", itemData.Count.ToString(), CloudConfiguration.DedicatedServerPasswordHash); } }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { HitSoundsLeft = PlayHitSoundCount; Owner = Player.GetPlayer(info.networkView.owner).Owner; PrepareIgnoredCollisionAll(Rigidbody.GetComponent <Collider>(), Owner.Transform); Rigidbody.isKinematic = true; Rigidbody.SetDensity(1.5f); Rigidbody.WakeUp(); Rigidbody.AddTorque(0, 10, 0); StartPos = Transform.position; Rigidbody.velocity = Velocity = info.networkView.initialData.ReadVector3() * Speed; ThrowedFromCover = Owner.IsInCover; FlightTime = 0; ItemID = info.networkView.initialData.Read <E_ItemID>(); Owner.GadgetsComponent.RegisterUsedGadget(ItemID); AlreadyExploded = false; if (uLink.Network.isServer == false) { return; } Invoke("Explode", ExplodeAfter); }
// USERGUIDEACTION INTERFACE protected override bool OnExecute() { if (base.OnExecute() == false) { return(false); } E_WeaponID weaponID = ItemType == GuiShop.E_ItemType.Weapon ? (E_WeaponID)ItemId : E_WeaponID.None; E_ItemID itemID = ItemType == GuiShop.E_ItemType.Item ? (E_ItemID)ItemId : E_ItemID.None; E_UpgradeID upgradeID = ItemType == GuiShop.E_ItemType.Upgrade ? (E_UpgradeID)ItemId : E_UpgradeID.None; E_PerkID perkID = ItemType == GuiShop.E_ItemType.Perk ? (E_PerkID)ItemId : E_PerkID.None; ResearchItem[] items = ResearchSupport.Instance.GetItems(); foreach (var item in items) { if (item.weaponID == weaponID && weaponID != E_WeaponID.None || item.itemID == itemID && itemID != E_ItemID.None || item.upgradeID == upgradeID && upgradeID != E_UpgradeID.None || item.perkID == perkID && perkID != E_PerkID.None) { Item = item; break; } } return(true); }
protected virtual void Break(AgentHuman attacker, E_WeaponID weaponID, E_ItemID itemID) { if (m_Explosion != null) { Explosion explosion = Mission.Instance.ExplosionCache.Get(m_Explosion, m_ExplosionOrigin.position, m_ExplosionOrigin.rotation); explosion.Agent = attacker; if (explosion != true && m_ExplosionDamage >= 0) { explosion.BaseDamage = m_ExplosionDamage; } explosion.m_WeaponID = weaponID; explosion.m_ItemID = itemID; } foreach (GameObject go in m_HideObjects) { go.SetActive(false); } foreach (GameObject go in m_ShowObjects) { go.SetActive(true); } if (uLink.Network.isServer) { NetworkView.RPC("BreakOnClients", uLink.RPCMode.Others); } }
protected void UseItemInCover(E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection, uLink.NetworkMessageInfo info) { if (Owner.BlackBoard.DontUpdate) { return; } #if !DEADZONE_CLIENT if (Owner.IsServer) { ServerAnticheat.ReportUseItemInCover(Owner.NetworkView.owner, gadget, coverPose, coverDirection, info); Owner.NetworkView.RPC("UseItemInCover", uLink.RPCMode.OthersExceptOwner, gadget, coverPose, coverDirection); } #endif Owner.BlackBoard.KeepMotion = false; Owner.BlackBoard.Desires.Gadget = gadget; AgentActionUseItem a = AgentActionFactory.Create(AgentActionFactory.E_Type.UseItem) as AgentActionUseItem; a.CoverDirection = coverDirection; a.CoverPose = coverPose; Owner.BlackBoard.ActionAdd(a); Owner.WorldState.SetWSProperty(E_PropKey.AtTargetPos, true); }
void ActionUseGadget(E_ItemID id) { if (Owner.BlackBoard.Stop) { return; } if (Owner.CharacterController.isGrounded == false) { //do not allow to use gadgets while falling (added especially for SentryGun and Mine, maybe we could allow some other gadgets) return; } if (Owner.GadgetsComponent.IsGadgetAvailableForUse(id) == false) { return; } Item g = Owner.GadgetsComponent.GetGadget(id); if (Owner.CanUseGadget(g) == false) { return; } if (g.Settings.ItemBehaviour == E_ItemBehaviour.Booster) { Owner.NetworkView.RPC("AskForBoost", uLink.RPCMode.Server, id); return; } Owner.WorldState.SetWSProperty(E_PropKey.UseGadget, true); Owner.BlackBoard.Desires.Gadget = id; }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { Owner = Player.GetPlayer(info.networkView.owner).Owner; if (GuiHUD.Instance) { GuiHUD.Instance.RegisterMedkit(this); } HitSoundsLeft = PlayHitSoundCount; Rigidbody.velocity = info.networkView.initialData.ReadVector3() * Speed; Rigidbody.SetDensity(1.5F); Rigidbody.WakeUp(); ItemID = info.networkView.initialData.Read <E_ItemID>(); if (uLink.Network.isServer) { StartCoroutine(Heal()); } Owner.GadgetsComponent.RegisterLiveGadget(ItemID, GameObject); Icons.SetTeamIcon(Owner.Team); }
// ------ void TouchGadget(E_ItemID g) { if (LocalPlayer) { LocalPlayer.Controls.UseGadgetDelegate(g); } }
public Item GetGadget(E_ItemID id) { if (Gadgets.ContainsKey(id)) { return(Gadgets[id]); } return(null); }
public bool IsGadgetAvailableForUse(E_ItemID id) { if (Gadgets.ContainsKey(id) && Gadgets[id].IsAvailableForUse()) { return(true); } return(false); }
void ChangeItem(int slotId) { E_ItemID id = GuiHUD.Instance.GetGadgetInInventoryIndex(slotId); if (id != E_ItemID.None && Player.LocalInstance.Owner.GadgetsComponent.GetGadget(id).Settings.ItemUse == E_ItemUse.Activate) { States.UseGadgetDelegate(id); } }
private void AddGadgetToList(List <E_ItemID> list, int index) { if (null != GuiHUD.Instance && null != GuiHUD.Instance.Gadgets) { E_ItemID id = GuiHUD.Instance.GetGadgetInInventoryIndex(index); if (id != E_ItemID.None && Player.LocalInstance.Owner.GadgetsComponent.GetGadget(id).Settings.ItemUse == E_ItemUse.Activate) { list.Add(id); } } }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { ComponentPlayer P = Player.GetPlayer(info.networkView.owner); info.networkView.initialData.ReadVector3(); ItemID = info.networkView.initialData.Read <E_ItemID>(); GoldReward = ItemSettingsManager.Instance.Get(ItemID).GoldReward; if (null != P) { InitWorker(P.Owner); } else { Debug.LogError(" SentryGyn.uLink_OnNetworkInstantiate() : unexpected error "); } }
// Copy constructor. Create clone of inSettings object. public InitSettings(InitSettings inSettings) { Damage = inSettings.Damage; Impulse = inSettings.Impulse; Speed = inSettings.Speed; Agent = inSettings.Agent; WeaponID = inSettings.WeaponID; ItemID = inSettings.ItemID; Homing = inSettings.Homing; Silencer = inSettings.Silencer; IgnoreTransform = inSettings.IgnoreTransform; if (null == Agent) { Debug.LogWarning("### Projectile.InitSettings() : unexpected null agent. WeaponID : " + WeaponID + ", ItemID : " + ItemID); } }
public Item(PlayerPersistantInfo ppi, AgentHuman owner, E_ItemID itemID) { Owner = owner; Settings = ItemSettingsManager.Instance.Get(itemID); if (Settings.ItemBehaviour == E_ItemBehaviour.Booster) { Timer = Settings.BoostTimer; } else { Timer = Settings.Timer; } Detected = false; if (Settings.Consumable) { // for cunsumables get real count from inventory !!! PPIItemData data = ppi.InventoryList.Items.Find(item => item.ID == itemID); Count = data.Count > Settings.MaxCountInMission ? Settings.MaxCountInMission : data.Count; } else { Count = Settings.Count > Settings.MaxCountInMission ? Settings.MaxCountInMission : Settings.Count; if (ppi.Upgrades.OwnsUpgrade(E_UpgradeID.ExplosivePouch)) { switch (itemID) { case E_ItemID.GrenadeEMP: case E_ItemID.GrenadeEMPII: case E_ItemID.GrenadeFlash: case E_ItemID.GrenadeFrag: case E_ItemID.GrenadeFragII: case E_ItemID.Mine: case E_ItemID.MineEMP: case E_ItemID.MineEMPII: ++Count; break; } } } OrigCount = Count; }
protected void AskForBoost(E_ItemID gadget) { if (uLink.Network.isServer == false) { return; } if (Owner.BlackBoard.DontUpdate) { return; } Item item = Owner.GadgetsComponent.GetGadget(gadget); if (item == null) { return; } if (!item.IsAvailableForUse()) { return; } PlayerPersistantInfo ppi = PPIManager.Instance.GetPPI(Owner.NetworkView.owner); if (ppi == null) { return; } ActiveBoosts.Add(new BoostInfo() { Settings = item.Settings, TimeToEnd = Time.timeSinceLevelLoad + item.Settings.BoostTimer, CurrentPower = 1 }); ppi.ConsumableItemUsed(gadget); item.BoostUsed(); Owner.NetworkView.RPC("RcvBoost", uLink.RPCMode.Others, gadget); }
public override string GetGadgetAnim(E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection) { ItemSettings setting = ItemSettingsManager.Instance.Get(gadget); switch (setting.ItemBehaviour) { // FIX IT case E_ItemBehaviour.Throw: if (BlackBoard.Cover) { if (coverDirection == E_CoverDirection.Middle) { return(coverPose == E_CoverPose.Stand ? "" : "CoverCrouchThrowCenter"); } else if (coverDirection == E_CoverDirection.Left) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowLeft" : "CoverCrouchThrowLeft"); } else if (coverDirection == E_CoverDirection.Right) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowRight" : "CoverCrouchThrowRight"); } } else { return("RunThrow"); //now we're using the same half-body anim for both idle and move /* if ( BlackBoard.MotionType == E_MotionType.Walk || BlackBoard.MotionType == E_MotionType.Run ) * return "RunThrow"; * else * return "IdleThrow"; */ } break; case E_ItemBehaviour.Place: return("Drop"); } throw new System.ArgumentOutOfRangeException(" Gadget: " + gadget + " behaviour " + setting.ItemBehaviour); }
public void Reset() { foreach (ParticleSystem em in m_Emitters) { if (null != em) { em.Stop(); } } GetComponent <AudioSource>().Stop(); m_Exploded = false; Agent = null; BaseDamage = m_MaxDamage; damageRadius = m_DamageRadius; noBlocking = null; m_WeaponID = E_WeaponID.None; m_ItemID = E_ItemID.None; }
public PreviewItem(E_ItemID itemID) { if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); m_ItemDescription = TextDatabase.instance[settings.Description]; m_ItemID = itemID; if ((itemID == E_ItemID.SentryGun) || (itemID == E_ItemID.SentryGunII) || (itemID == E_ItemID.SentryGunRail) || (itemID == E_ItemID.SentryGunRockets)) { m_NumberOfParams = 4; } else if (itemID == E_ItemID.Mine) { m_NumberOfParams = 3; } else if ((itemID == E_ItemID.MineEMP) || (itemID == E_ItemID.MineEMPII) || (itemID == E_ItemID.GrenadeFrag) || (itemID == E_ItemID.GrenadeFragII) || (itemID == E_ItemID.BoxHealth) || (itemID == E_ItemID.BoxHealthII)) { m_NumberOfParams = 2; } else if ((itemID == E_ItemID.GrenadeFlash) || (itemID == E_ItemID.GrenadeEMP) || (itemID == E_ItemID.GrenadeEMPII) || (itemID == E_ItemID.EnemyDetector) || (itemID == E_ItemID.EnemyDetectorII) || (itemID == E_ItemID.BoxAmmo) || (itemID == E_ItemID.BoxAmmoII)) { m_NumberOfParams = 1; } else if (itemID == E_ItemID.BoosterAccuracy || itemID == E_ItemID.BoosterArmor || itemID == E_ItemID.BoosterSpeed || itemID == E_ItemID.BoosterDamage) { m_NumberOfParams = 2; } else { m_NumberOfParams = 1; } } }
protected void UseItem(E_ItemID gadget, bool keepMotion, uLink.NetworkMessageInfo info) { // Debug.Log ("ComponentNetworkAction.UseItem(), time=" + Time.timeSinceLevelLoad + ", BlackBoard.KeepMotion=" + Owner.BlackBoard.KeepMotion + ", Owner.IsOwner=" + Owner.IsOwner + ", Owner.IsServer=" + Owner.IsServer + ", BlackBoard.DontUpdate=" + Owner.BlackBoard.DontUpdate); if (Owner.BlackBoard.DontUpdate) { return; } #if !DEADZONE_CLIENT if (Owner.IsServer) { ServerAnticheat.ReportUseItem(Owner.NetworkView.owner, gadget, keepMotion, info); Owner.NetworkView.RPC("UseItem", uLink.RPCMode.OthersExceptOwner, gadget, keepMotion); } #endif Owner.BlackBoard.KeepMotion = keepMotion; Owner.BlackBoard.Desires.Gadget = gadget; Owner.BlackBoard.ActionAdd(AgentActionFactory.Create(AgentActionFactory.E_Type.UseItem)); Owner.WorldState.SetWSProperty(E_PropKey.AtTargetPos, true); }
public void Reset() { MoveDirection = Vector3.zero; FireDirection = Vector3.zero; WalkOnly = false; Sprint = false; MoveSpeedModifier = 1; CoverSelected = null; CoverPosition = E_CoverDirection.Unknown; CoverNear.Reset(); InteractionObject = null; Animation = null; Weapon = E_WeaponID.None; Gadget = E_ItemID.None; WeaponTriggerOn = false; WeaponTriggerUp = false; WeaponTriggerUpDisabled = true; MeleeTarget = null; MeleeTriggerOn = false; RollDirection = E_Direction.None; }
public void AddItemKill(E_ItemID id) { if (PlayerData.InventoryList.Items.FindIndex(p => p.ID == id) < 0) { return; } PPIRoundScore.ItemStatistics itemStats; try { itemStats = Score.ItemStats[id]; itemStats.StatsKills++; } catch (KeyNotFoundException) { itemStats = new PPIRoundScore.ItemStatistics(); itemStats.StatsKills = 1; } Score.ItemStats[id] = itemStats; // Debug.Log("Item kill " + PlayerData.InventoryList.Items[index].ToString() + " " + PlayerData.Stats.Games[gameType].ToString()); }
public void AddItemUse(E_ItemID id) { if (PlayerData.InventoryList.Items.FindIndex(p => p.ID == id) < 0) { return; } PPIRoundScore.ItemStatistics itemStats; try { itemStats = Score.ItemStats[id]; itemStats.StatsUseCount++; } catch (KeyNotFoundException) { itemStats = new PPIRoundScore.ItemStatistics(); itemStats.StatsUseCount = 1; } Score.ItemStats[id] = itemStats; // Debug.Log("Item use " + PlayerData.InventoryList.Items[index].ToString()); }
public abstract string GetGadgetAnim(E_ItemID gadget, E_CoverPose pos, E_CoverDirection direction);
public static void ReportUseItem(uLink.NetworkPlayer player, E_ItemID gadget, bool keepMotion, uLink.NetworkMessageInfo info) { }
public static void ReportUseItemInCover(uLink.NetworkPlayer player, E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection, uLink.NetworkMessageInfo info) { }