Ejemplo n.º 1
0
 public void RegisterUsedGadget(E_ItemID id)
 {
     if (Gadgets.ContainsKey(id))
     {
         Gadgets[id].RegisterUsedItem();
     }
 }
Ejemplo n.º 2
0
    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());
        }
    }
Ejemplo n.º 3
0
 public void UnRegisterLiveGadget(E_ItemID id, GameObject g)
 {
     if (Gadgets.ContainsKey(id))
     {
         Gadgets[id].UnRegisterPlacedObject(g);
     }
 }
Ejemplo n.º 4
0
    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;
 */
    }
Ejemplo n.º 5
0
    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);
        }
    }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
        // 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);
        }
Ejemplo n.º 8
0
    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);
        }
    }
Ejemplo n.º 9
0
    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);
    }
Ejemplo n.º 10
0
    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;
    }
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
 // ------
 void TouchGadget(E_ItemID g)
 {
     if (LocalPlayer)
     {
         LocalPlayer.Controls.UseGadgetDelegate(g);
     }
 }
Ejemplo n.º 13
0
    public Item GetGadget(E_ItemID id)
    {
        if (Gadgets.ContainsKey(id))
        {
            return(Gadgets[id]);
        }

        return(null);
    }
Ejemplo n.º 14
0
    public bool IsGadgetAvailableForUse(E_ItemID id)
    {
        if (Gadgets.ContainsKey(id) && Gadgets[id].IsAvailableForUse())
        {
            return(true);
        }

        return(false);
    }
Ejemplo n.º 15
0
    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);
        }
    }
Ejemplo n.º 16
0
    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);
            }
        }
    }
Ejemplo n.º 17
0
    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 ");
        }
    }
Ejemplo n.º 18
0
        // 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);
            }
        }
Ejemplo n.º 19
0
    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;
    }
Ejemplo n.º 20
0
    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);
    }
Ejemplo n.º 21
0
    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);
    }
Ejemplo n.º 22
0
    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;
            }
        }
    }
Ejemplo n.º 24
0
    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);
    }
Ejemplo n.º 25
0
        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;
        }
Ejemplo n.º 26
0
    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());
    }
Ejemplo n.º 27
0
    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());
    }
Ejemplo n.º 28
0
 public abstract string GetGadgetAnim(E_ItemID gadget, E_CoverPose pos, E_CoverDirection direction);
Ejemplo n.º 29
0
 public static void ReportUseItem(uLink.NetworkPlayer player, E_ItemID gadget, bool keepMotion, uLink.NetworkMessageInfo info)
 {
 }
Ejemplo n.º 30
0
 public static void ReportUseItemInCover(uLink.NetworkPlayer player, E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection, uLink.NetworkMessageInfo info)
 {
 }