Exemple #1
0
        void AddModComponent()
        {
            if (UpgradePointsMod.instance != null)
            {
                Destroy(UpgradePointsMod.instance);
            }
            UpgradePointsMod spawn = LocalPlayer.GameObject.AddComponent <UpgradePointsMod>();

            UpgradePointsMod.instance         = spawn;
            UpgradePointsMod.instance.Respawn = true;
        }
Exemple #2
0
        public bool GrantRewards()
        {
            UpgradePointsMod mod = UpgradePointsMod.instance;

            mod.AddXP(_exp, false);
            mod.RefundPoints += _refundPoints;
            for (int i = 0; i < _items.Count; i++)
            {
                LocalPlayer.Inventory.AddItem(_items[i].ID, _items[i].Amount, true, false, _items[i].properties);
            }
            return(true);
        }
Exemple #3
0
        public override void CheckHit(Vector3 position, Transform target, bool isTrigger, Collider targetCollider)
        {
            if (alreadyHit.Contains(target))
            {
                return;
            }
            else
            {
                alreadyHit.Add(target);
            }
            if (UpgradePointsMod.instance != null)
            {
                float a = BaseDamage + velocitybonus;

                a *= UpgradePointsMod.instance.ArrowDmg;

                if (UpgradePointsMod.instance.specialUpgrades[28].bought)
                {
                    if (UpgradePointsMod.instance.specialUpgrades[49].bought)
                    {
                        if (UpgradePointsMod.instance.specialUpgrades[50].bought)
                        {
                            if (UpgradePointsMod.instance.specialUpgrades[36].bought)
                            {
                                if (UpgradePointsMod.instance.specialUpgrades[90].bought)
                                {
                                    if (UpgradePointsMod.instance.specialUpgrades[91].bought)
                                    {
                                        if (UpgradePointsMod.instance.specialUpgrades[92].bought)
                                        {
                                            if (UpgradePointsMod.instance.specialUpgrades[93].bought)
                                            {
                                                if (UpgradePointsMod.instance.specialUpgrades[94].bought)
                                                {
                                                    if (UpgradePointsMod.instance.specialUpgrades[95].bought)
                                                    {
                                                        a *= 35;
                                                    }
                                                    else
                                                    {
                                                        a *= 32.5f;
                                                    }
                                                }
                                                else
                                                {
                                                    a *= 30f;
                                                }
                                            }
                                            else
                                            {
                                                a *= 27f;
                                            }
                                        }
                                        else
                                        {
                                            a *= 24f;
                                        }
                                    }
                                    else
                                    {
                                        a *= 20f;
                                    }
                                }
                                else
                                {
                                    a *= 16f;
                                }
                            }
                            else
                            {
                                a *= 8f;
                            }
                        }
                        else
                        {
                            a *= 3f;
                        }
                    }
                    else
                    {
                        a *= 2f;
                    }
                    if (spearType)
                    {
                        if (UpgradePointsMod.instance.specialUpgrades[30].bought)
                        {
                            a *= 3.5f;
                        }
                    }
                    if (UpgradePointsMod.instance.specialUpgrades[29].bought)
                    {
                        if (UpgradePointsMod.instance.specialUpgrades[89].bought)
                        {
                            a *= 1 + UpgradePointsMod.instance.FocusFireStacks * 0.4f;
                        }
                        else
                        {
                            a *= 1 + UpgradePointsMod.instance.FocusFireStacks * 0.25f;
                        }
                    }
                    if (UpgradePointsMod.instance.specialUpgrades[7].bought)
                    {
                        if (StealthCheck.IsHidden)
                        {
                            if (UpgradePointsMod.instance.specialUpgrades[8].bought)
                            {
                                if (UpgradePointsMod.instance.specialUpgrades[10].bought)
                                {
                                    a *= 15;
                                }
                                else
                                {
                                    a *= 5;
                                }
                            }
                            else
                            {
                                a *= 2;
                            }
                        }
                    }
                    a *= BrawlerUpgrade.DamageBonus + 1;

                    if (UpgradePointsMod.instance.specialUpgrades[33].bought)
                    {
                        float dist = Vector3.Distance(startingpos, target.position);
                        dist /= 20; // every 20 meters
                        a     = a * (1 + dist);
                    }
                    if (UpgradePointsMod.instance.specialUpgrades[48].bought)
                    {
                        if (target.CompareTag("enemyCollide"))
                        {
                            if (UpgradePointsMod.instance.ComboStrikeBonusDamage(UpgradePointsMod.StrikeType.Ranged, target.root))
                            {
                                a *= 4;
                            }
                            UpgradePointsMod.instance.AddToComboStrike(UpgradePointsMod.StrikeType.Melee, target.root);
                        }
                    }
                    if (UpgradePointsMod.instance.specialUpgrades[44].bought)
                    {
                        if (CharacterControllerMod.FloatVelocity < 0.1f)
                        {
                            a *= 3;
                        }
                    }
                }
                a     *= UpgradePointsMod.CritBonus();
                damage = Mathf.RoundToInt(a);
            }
            if (UpgradePointsMod.instance.specialUpgrades[29].bought)
            {
                if (UpgradePointsMod.instance.FocusFireTarget == target.gameObject)
                {
                    if (UpgradePointsMod.instance.specialUpgrades[88].bought)
                    {
                        UpgradePointsMod.instance.FocusFireStacks = Mathf.Clamp(UpgradePointsMod.instance.FocusFireStacks + 1, 0, 100);
                    }
                    else
                    {
                        UpgradePointsMod.instance.FocusFireStacks = Mathf.Clamp(UpgradePointsMod.instance.FocusFireStacks + 1, 0, 20);
                    }
                }
                else
                {
                    UpgradePointsMod.instance.FocusFireStacks = 0;
                    UpgradePointsMod.instance.FocusFireTarget = target.gameObject;
                }
            }



            if (!ignoreCollisionEvents(targetCollider))
            {
                if (!isTrigger)
                {
                    Molotov componentInParent = ((Component)base.transform).GetComponentInParent <Molotov>();
                    if ((bool)componentInParent)
                    {
                        componentInParent.IncendiaryBreak();
                    }
                }
                bool headDamage = false;
                if (target.gameObject.layer == LayerMask.NameToLayer("Water"))
                {
                    FMODCommon.PlayOneshotNetworked(hitWaterEvent, base.transform, FMODCommon.NetworkRole.Any);
                }
                else if (target.CompareTag("SmallTree"))
                {
                    FMODCommon.PlayOneshotNetworked(hitBushEvent, base.transform, FMODCommon.NetworkRole.Any);
                }
                if (target.CompareTag("PlaneHull"))
                {
                    FMODCommon.PlayOneshotNetworked(hitMetalEvent, base.transform, FMODCommon.NetworkRole.Any);
                }
                if (target.CompareTag("Tree") || target.root.CompareTag("Tree") || target.CompareTag("Target"))
                {
                    if (spearType)
                    {
                        base.StartCoroutine(HitTree(hit.point - base.transform.forward * 2.1f));
                    }
                    else if (hitPointUpdated)
                    {
                        base.StartCoroutine(HitTree(hit.point - base.transform.forward * 0.35f));
                    }
                    else
                    {
                        base.StartCoroutine(HitTree(base.transform.position - base.transform.forward * 0.35f));
                    }
                    disableLive();
                    if (target.CompareTag("Tree") || target.root.CompareTag("Tree"))
                    {
                        TreeHealth component = ((Component)target).GetComponent <TreeHealth>();
                        if (!(bool)component)
                        {
                            component = ((Component)target.root).GetComponent <TreeHealth>();
                        }
                        if ((bool)component)
                        {
                            component.LodTree.AddTreeCutDownTarget(base.gameObject);
                        }
                    }
                }
                else if (target.CompareTag("enemyCollide") || target.tag == "lb_bird" || target.CompareTag("animalCollide") || target.CompareTag("Fish") || target.CompareTag("enemyRoot") || target.CompareTag("animalRoot"))
                {
                    UpgradePointsMod.instance.DoAreaDamage(target.transform.root, damage);

                    bool flag  = target.tag == "lb_bird" || target.CompareTag("lb_bird");
                    bool flag2 = target.CompareTag("Fish");
                    bool flag3 = target.CompareTag("animalCollide") || target.CompareTag("animalRoot");
                    arrowStickToTarget arrowStickToTarget = ((Component)target).GetComponent <arrowStickToTarget>();
                    if (!(bool)arrowStickToTarget)
                    {
                        arrowStickToTarget = ((Component)target.root).GetComponentInChildren <arrowStickToTarget>();
                    }
                    if (!spearType && !flintLockAmmoType && !flag2)
                    {
                        if ((bool)arrowStickToTarget && arrowStickToTarget.enabled)
                        {
                            if (flag)
                            {
                                EventRegistry.Achievements.Publish(TfEvent.Achievements.BirdArrowKill, null);
                            }
                            arrowStickToTarget.CreatureType(flag3, flag, flag2);
                            if (BoltNetwork.isRunning)
                            {
                                if ((bool)at && (bool)at._boltEntity && at._boltEntity.isAttached && at._boltEntity.isOwner)
                                {
                                    headDamage = arrowStickToTarget.stickArrowToNearestBone(base.transform);
                                }
                            }
                            else
                            {
                                headDamage = arrowStickToTarget.stickArrowToNearestBone(base.transform);
                            }
                        }
                        base.Invoke("destroyMe", 0.1f);
                    }

                    base.StartCoroutine(HitAi(target, flag || flag3, headDamage));
                    if (flag2)
                    {
                        base.StartCoroutine(HitFish(target, hit.point - base.transform.forward * 0.35f));
                    }
                    disableLive();
                }
                else if (target.CompareTag("PlayerNet"))
                {
                    if (BoltNetwork.isRunning)
                    {
                        BoltEntity boltEntity = ((Component)target).GetComponentInParent <BoltEntity>();
                        if (!(bool)boltEntity)
                        {
                            boltEntity = ((Component)target).GetComponent <BoltEntity>();
                        }
                        if ((bool)boltEntity)
                        {
                            HitPlayer.Create(boltEntity, EntityTargets.OnlyOwner).Send();
                            disableLive();
                        }
                    }
                }
                else if (target.CompareTag("TerrainMain") && !LocalPlayer.IsInCaves)
                {
                    if (ignoreTerrain)
                    {
                        ignoreTerrain = false;
                        base.StartCoroutine(RevokeIgnoreTerrain());
                    }
                    else
                    {
                        if (spearType)
                        {
                            if ((bool)bodyCollider)
                            {
                                bodyCollider.isTrigger = true;
                            }
                            base.StartCoroutine(HitStructure(base.transform.position - base.transform.forward * 2.1f, false));
                        }
                        else
                        {
                            Vector3 position2 = base.transform.position - base.transform.forward * -0.8f;
                            float   num       = Terrain.activeTerrain.SampleHeight(base.transform.position);
                            Vector3 position3 = Terrain.activeTerrain.transform.position;
                            float   num2      = num + position3.y;
                            Vector3 position4 = base.transform.position;
                            if (position4.y < num2)
                            {
                                position2.y = num2 + 0.5f;
                            }
                            base.StartCoroutine(HitStructure(position2, false));
                        }
                        disableLive();
                        FMODCommon.PlayOneshotNetworked(hitGroundEvent, base.transform, FMODCommon.NetworkRole.Any);
                    }
                }
                else if (target.CompareTag("structure") || target.CompareTag("jumpObject") || target.CompareTag("SLTier1") || target.CompareTag("SLTier2") || target.CompareTag("SLTier3") || target.CompareTag("UnderfootWood"))
                {
                    if ((bool)target.transform.parent)
                    {
                        if ((bool)((Component)target.transform.parent).GetComponent <StickFenceChunkArchitect>())
                        {
                            return;
                        }
                        if ((bool)((Component)target.transform.parent).GetComponent <BoneFenceChunkArchitect>())
                        {
                            return;
                        }
                    }
                    if (!isTrigger)
                    {
                        if (spearType)
                        {
                            base.StartCoroutine(HitStructure(hit.point - base.transform.forward * 2.1f, true));
                        }
                        else
                        {
                            base.StartCoroutine(HitStructure(hit.point - base.transform.forward * 0.35f, true));
                        }
                        disableLive();
                    }
                }
                else if (target.CompareTag("CaveDoor"))
                {
                    ignoreTerrain = true;
                    Physics.IgnoreCollision(base.GetComponent <Collider>(), ((Component)Terrain.activeTerrain).GetComponent <Collider>(), true);
                }
                else if (flintLockAmmoType && (target.CompareTag("BreakableWood") || target.CompareTag("BreakableRock")))
                {
                    target.SendMessage("Hit", 40, SendMessageOptions.DontRequireReceiver);
                }
                if (!Live)
                {
                    destroyThisAmmo();
                    parent.BroadcastMessage("OnArrowHit", SendMessageOptions.DontRequireReceiver);
                }
            }
        }