Beispiel #1
0
        public static IWeapon CreateWeapon(string rarity, string weaponType, string weaponName)
        {
            WeaponRarity weaponRarity = (WeaponRarity)Enum.Parse(typeof(WeaponRarity), rarity);
            Type         classType    = Type.GetType("P07_InfernoInfinity.Models.Weapons." + weaponType);
            var          instance     = (IWeapon)Activator
                                        .CreateInstance(classType, new object[] { weaponRarity, weaponName });

            return(instance);
        }
Beispiel #2
0
 public static void SetAll(ref Stats stats, WeaponType type, WeaponRarity rarity, int wear, float rof, float crit, float armour, float damageMin, float damageMax)
 {
     SetWear(ref stats, wear);
     SetRateOfFire(ref stats, rof);
     SetCritChance(ref stats, crit);
     SetArmourPenetration(ref stats, armour);
     SetRandomDamage(ref stats, damageMin, damageMax);
     SetMods(ref stats, type, rarity);
 }
Beispiel #3
0
 protected Weapon(WeaponRarity rarity, string name, int minDamage, int maxDamage, int numberOfSockets)
 {
     this.Rarity          = rarity;
     this.Name            = name;
     this.MinDamage       = minDamage * (int)this.Rarity;
     this.MaxDamage       = maxDamage * (int)this.Rarity;
     this.NumberOfSockets = numberOfSockets;
     this.gems            = new IGem[numberOfSockets];
 }
Beispiel #4
0
        public IWeapon CreateWeapon(string weaponRarity, string weaponType, string name)
        {
            WeaponRarity rarity = (WeaponRarity)Enum.Parse(typeof(WeaponRarity), weaponRarity);

            Type classType = Type.GetType(weaponType);

            IWeapon instance = (IWeapon)Activator.CreateInstance(classType, new object[] { rarity, name });

            return(instance);
        }
Beispiel #5
0
    protected Weapon(int minDamage, int maxDamage, int socketsCount, WeaponRarity rarity, string weaponName)
    {
        this.MinDamage = minDamage;
        this.MaxDamage = maxDamage;

        this.Rarity  = rarity;
        this.Sockets = new IWeaponSocketInsertable[socketsCount];

        this.Name = weaponName;
    }
Beispiel #6
0
 public WeaponModel(string name, string description, WeaponType type, float damage, float attackInterval, float durable, float usage, WeaponRarity rarity, float x, float y, float z)
 {
     this.name           = name;
     this.description    = description;
     this.weaponType     = type;
     this.damage         = damage;
     this.attackInterval = attackInterval;
     this.durability     = durability;
     this.usage          = usage;
     this.rarity         = rarity;
     this.location       = Tuple.Create(x, y, z);
 }
Beispiel #7
0
        public string GenerateWeaponName(WeaponRarity rarity, WeaponType type, List <Effect> effects)
        {
            var name = $"{rarity.RarityName}";

            if (effects.Count != 0)
            {
                name = $"{name} {effects[_rnd.Next(0, effects.Count - 1)].WeaponNameFix}";
            }

            name = $"{name} {type.Name}";
            return(name);
        }
Beispiel #8
0
    public IWeapon CreateWeapon(string weaponRarity, string weaponType, string name)
    {
        WeaponRarity rarity = (WeaponRarity)Enum.Parse(typeof(WeaponRarity), weaponRarity);

        Assembly assembly = Assembly.GetExecutingAssembly();

        Type type = assembly.GetTypes().FirstOrDefault(t => t.Name == weaponType);

        IWeapon instance = (IWeapon)Activator.CreateInstance(type, new object[] { rarity, name });

        return(instance);
    }
Beispiel #9
0
 protected Weapon(string name, string rarity, int minDmg, int maxDmg, int amountOfSockets)
 {
     this.name      = name;
     this.minDamage = minDmg;
     this.maxDamage = maxDmg;
     this.gems      = new Gem[amountOfSockets];
     for (int i = 0; i < gems.Length; i++)
     {
         gems[i] = new Gem();
     }
     this.rarity = (WeaponRarity)Enum.Parse(typeof(WeaponRarity), rarity);
 }
        public IWeapon CreateWeapon(string weaponType, string weaponName, string rarityType)
        {
            WeaponRarity rarity = Enum.Parse <WeaponRarity>(rarityType);

            var assembly = Assembly.GetCallingAssembly();

            Type classType = assembly.GetTypes().First(t => t.Name == weaponType);

            var classInstance = (IWeapon)Activator.CreateInstance(classType, weaponName, rarity);

            return(classInstance);
        }
Beispiel #11
0
    public static Stats SetStats(Stats stats, int seed, WeaponType type, WeaponRarity rarity)
    {
        Random.InitState(seed);

        if (type == WeaponType.MELEE)
        {
            if (rarity == WeaponRarity.UNCOMMON)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.075f, 0.3f, 5.5f, 6.5f);
            }
            else if (rarity == WeaponRarity.RARE)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.1f, 0.35f, 6.0f, 7.0f);
            }
            else if (rarity == WeaponRarity.EPIC)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.125f, 0.4f, 6.5f, 7.5f);
            }
            else if (rarity == WeaponRarity.LEGENDARY)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.15f, 0.45f, 7.0f, 8.0f);
            }
            else
            {
                SetAll(ref stats, type, rarity, -1, 1, 0.05f, 0.25f, 5f, 5f);
            }
        }
        else
        {
            if (rarity == WeaponRarity.UNCOMMON)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.075f, 0.1f, 3.0f, 3.5f);
            }
            else if (rarity == WeaponRarity.RARE)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.1f, 0.15f, 3.5f, 4.0f);
            }
            else if (rarity == WeaponRarity.EPIC)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.125f, 0.2f, 4.0f, 4.5f);
            }
            else if (rarity == WeaponRarity.LEGENDARY)
            {
                SetAll(ref stats, type, rarity, 30, 1, 0.15f, 0.25f, 4.5f, 5.0f);
            }
            else
            {
                SetAll(ref stats, type, rarity, 10, 1, 0.05f, 0.05f, 2.5f, 2.5f);
            }
        }
        return(stats);
    }
Beispiel #12
0
 protected Weapon(
     string name,
     int minDamage,
     int maxDamage,
     int socketsCount,
     WeaponRarity rarity)
 {
     this.Name        = name;
     this.Rarity      = rarity;
     this.MinDamage   = minDamage;
     this.MaxDamage   = maxDamage;
     this.SocketCount = socketsCount;
     this.Sockets     = new Gem[this.SocketCount];
 }
Beispiel #13
0
 public static void SetMods(ref Stats stats, WeaponType type, WeaponRarity weaponRarity)
 {
     if (weaponRarity == WeaponRarity.UNCOMMON)
     {
         stats.mod1 = Modifier.NONE;
         stats.mod2 = Modifier.NONE;
     }
     else if (weaponRarity == WeaponRarity.RARE)
     {
         if (type == WeaponType.MELEE)
         {
             stats.mod1 = (Modifier)Random.Range(1, 6);
         }
         else
         {
             stats.mod1 = (Modifier)Random.Range(9, 13);
         }
         stats.mod2 = Modifier.NONE;
     }
     else if (weaponRarity == WeaponRarity.EPIC)
     {
         if (type == WeaponType.MELEE)
         {
             stats.mod1 = (Modifier)Random.Range(1, 6);
             stats.mod2 = (Modifier)Random.Range(1, 6);
         }
         else
         {
             stats.mod1 = (Modifier)Random.Range(9, 13);
             stats.mod2 = (Modifier)Random.Range(9, 13);
         }
     }
     else if (weaponRarity == WeaponRarity.LEGENDARY)
     {
         if (type == WeaponType.MELEE)
         {
             stats.mod1 = (Modifier)Random.Range(6, 9);
             stats.mod2 = (Modifier)Random.Range(1, 6);
         }
         else
         {
             stats.mod1 = (Modifier)Random.Range(13, 15);
             stats.mod2 = (Modifier)Random.Range(9, 13);
         }
     }
 }
        private static IWeapon CreateWeapon(string[] inputArgs, Dictionary <string, IWeapon> weapons)
        {
            string[] weaponArgs = inputArgs[0].Split();

            string rarityType = weaponArgs[0];
            string weaponType = weaponArgs[1];

            Type classType = GetType(weaponType);

            string weaponName = inputArgs[1];

            WeaponRarity rarity = Enum.Parse <WeaponRarity>(rarityType);

            var weapon = (IWeapon)Activator.CreateInstance(classType, weaponName, rarity);

            return(weapon);
        }
Beispiel #15
0
    // Update is called once per frame

    public void ChangeWeapon(WeaponType type, WeaponRarity rarity, int seed)
    {
        object[] objects = new object[4];

        objects[0] = photonView.viewID;
        objects[1] = seed;
        objects[2] = type;
        objects[3] = rarity;

        if (type == WeaponType.MELEE)
        {
            PhotonNetwork.RPC(photonView, "GetMeleeWeapon", PhotonTargets.All, false, objects);
        }
        else
        {
            PhotonNetwork.RPC(photonView, "GetRangedWeapon", PhotonTargets.All, false, objects);
        }
    }
Beispiel #16
0
        private void SetQualityItem()
        {
            int number = Random.Range(0, 100);

            if (number <= _normalChance)
            {
                actualRarityDrop = WeaponRarity.Normal;
            }
            else if (number <= _normalChance + _uncommonChance)
            {
                actualRarityDrop = WeaponRarity.Uncommon;
            }
            else if (number <= _normalChance + _uncommonChance + _rareChance)
            {
                actualRarityDrop = WeaponRarity.Rare;
            }
            else if (number <= _normalChance + _uncommonChance + _rareChance + _extraordinayChance)
            {
                actualRarityDrop = WeaponRarity.Extraordinary;
            }
        }
    private static IWeapon CreateWeapon(string[] inputTokens)
    {
        string[] weaponTokens = inputTokens[1].Split(' ', StringSplitOptions.RemoveEmptyEntries);

        WeaponRarity rarity = Enum.Parse <WeaponRarity>(weaponTokens[0]);

        Type weaponType = Type.GetType(weaponTokens[1]);

        if (weaponType == null)
        {
            throw new ArgumentException("Invalid Weapon Type!");
        }

        if (!typeof(IWeapon).IsAssignableFrom(weaponType))
        {
            throw new ArgumentException("Invalid Weapon!");
        }

        IWeapon weapon = (IWeapon)Activator.CreateInstance(weaponType, new object[] { rarity, inputTokens[2] });

        return(weapon);
    }
Beispiel #18
0
 public Sword(string name, WeaponRarity rarity)
     : base(name, SwordDefaultMinDamage, SwordDefaultMaxDamage, SwordDefaultSocketCount, rarity)
 {
 }
Beispiel #19
0
 public Sword(WeaponRarity rarity, string name) : base(rarity, name, defautMinDamage, defautMaxDamage, defautSockets)
 {
 }
 public Sword(WeaponRarity rarity) : base(4, 6, 3, rarity)
 {
 }
Beispiel #21
0
 public Knife(WeaponRarity rarity, string weaponName) : base(3, 4, 2, rarity, weaponName)
 {
 }
Beispiel #22
0
    public void WeaponGenerator()
    {
        if (isGenerated == true)
        {
            int AT = Random.Range(0, 2);

            switch (AT)
            {
            case 0:
                atkType = 0;
                int WT = Random.Range(0, 2);
                switch (WT)
                {
                case 0:
                    weaponType     = 0;
                    weaponRarity   = 0;
                    weaponMaterial = 0;
                    Name           = "axe";
                    BaseAtk        = Random.Range(10, 16);
                    BaseRng        = 1;
                    APCost         = 1;
                    if (AxeHandle != null)
                    {
                        GameObject axe = Instantiate(AxeHandle[Random.Range(0, AxeHandle.Length)], transform.position, transform.rotation);
                        axe.transform.parent = gameObject.transform;
                        if (AxeBlade != null)
                        {
                            GameObject bladeSocket = GameObject.FindGameObjectWithTag("Blade");
                            GameObject blade       = Instantiate(AxeBlade[Random.Range(0, AxeBlade.Length)], bladeSocket.transform.position, bladeSocket.transform.rotation);
                            blade.transform.parent = axe.transform;
                        }
                    }
                    break;

                case 1:
                    weaponType     = WeaponType.Dagger;
                    weaponRarity   = 0;
                    weaponMaterial = 0;
                    Name           = "dagger";
                    BaseAtk        = Random.Range(10, 16);
                    BaseRng        = 1;
                    APCost         = 1;
                    if (DaggerHandle != null)
                    {
                        GameObject dagger = Instantiate(DaggerHandle[Random.Range(0, DaggerHandle.Length)], transform.position, transform.rotation);
                        dagger.transform.parent = gameObject.transform;
                        if (DaggerBlade != null)
                        {
                            GameObject bladeSocket = GameObject.FindGameObjectWithTag("Blade");
                            GameObject blade       = Instantiate(DaggerBlade[Random.Range(0, DaggerBlade.Length)], bladeSocket.transform.position, bladeSocket.transform.rotation);
                            blade.transform.parent = dagger.transform;
                        }
                    }
                    break;
                }
                break;

            case 1:
                atkType = AtkType.Magic;
                WT      = 2;
                switch (WT)
                {
                case 2:
                    weaponType     = WeaponType.Wand;
                    weaponRarity   = 0;
                    weaponMaterial = 0;
                    Name           = "wand";
                    BaseAtk        = Random.Range(10, 16);
                    BaseRng        = 7;
                    APCost         = 1;
                    if (WandHandle != null)
                    {
                        GameObject wand = Instantiate(WandHandle[Random.Range(0, WandHandle.Length)], transform.position, transform.rotation);
                        wand.transform.parent = gameObject.transform;
                        if (WandTip != null)
                        {
                            GameObject bladeSocket = GameObject.FindGameObjectWithTag("Blade");
                            GameObject Tip         = Instantiate(WandTip[Random.Range(0, WandTip.Length)], bladeSocket.transform.position, bladeSocket.transform.rotation);
                            Tip.transform.parent = wand.transform;
                        }
                    }
                    break;
                }
                break;
            }
        }
    }
Beispiel #23
0
 public Knife(WeaponRarity rarity, string name)
     : base(rarity, name, 3, 4, 2)
 {
 }
Beispiel #24
0
 public Knife(WeaponRarity rarity) : base(3, 4, 2, rarity)
 {
 }
Beispiel #25
0
 public Axe(WeaponRarity rarity, string name) : base(rarity, name, NUMBER_OF_SOCKETS, INITIAL_MIN_DAMAGE, INITIAL_MAX_DAMAGE)
 {
 }
Beispiel #26
0
 public Axe(WeaponRarity rarity, string name)
     : base(rarity, name, 5, 10, 4)
 {
 }
Beispiel #27
0
 public Sword(WeaponRarity rarity, string name) : base(rarity, name, 4, 6, 3)
 {
 }
Beispiel #28
0
 public Knife(string name, WeaponRarity rarity)
     : base(name, rarity, InitialMinDamage, InitialMaxDamage, GemSocketsNumber)
 {
 }
Beispiel #29
0
 public Sword(string name, WeaponRarity rarity)
     : base(name, rarity, MaxDamage, MinDamage, GemSockets)
 {
 }
Beispiel #30
0
    // Start is called before the first frame update
    void Start()
    {
        lastVisitedMenu = MainMenu;

        foreach (Transform child in menuGroup.transform)
        {
            menuList.Add(child.gameObject);
        }

        // Clear selected object
        EventSystem.current.SetSelectedGameObject(null);
        // Set button to MainFirst
        EventSystem.current.SetSelectedGameObject(mainFirstButton);

        // Go through all register Achievements
        foreach (Achievement a in AchievementManager.Instance().achievements)
        {
            // Create a GameObject based on achDisplay prefab
            GameObject curr = Instantiate(achievementPrefab, achievementContent.transform);

            MakeDisplay(curr, a);
        }

        // Set up Weapon loadout
        order = new Dictionary <string, Dictionary <WeaponRarity, List <Weapon> > >();
        // Dictionary 1 - Type { Auto = 0, Semi = 1, Launcher = 2, Sprayer = 3, ... }
        for (int i = 0; i < System.Enum.GetValues(typeof(WeaponType)).Length - 1; i++)  // - 1 gets rid of "none" from enum
        {
            switch (i)
            {
            case 0:
                order.Add("Automatic", new Dictionary <WeaponRarity, List <Weapon> >());
                break;

            case 1:
                order.Add("Semiautomatic", new Dictionary <WeaponRarity, List <Weapon> >());
                break;

            case 2:
                order.Add("Launcher", new Dictionary <WeaponRarity, List <Weapon> >());
                break;

            case 3:
                order.Add("Sprayer", new Dictionary <WeaponRarity, List <Weapon> >());
                break;

            default:
                Debug.LogError("Something went wrong");
                break;
            }
            // Dictionary 2 - Rarity { Common = 0, Uncommon = 1, Rare = 2, Legenday = 3 }
            foreach (WeaponRarity rarity in System.Enum.GetValues(typeof(WeaponRarity)))
            {
                string type = "";
                switch (i)
                {
                case 0:
                    type = "Automatic";
                    break;

                case 1:
                    type = "Semiautomatic";
                    break;

                case 2:
                    type = "Launcher";
                    break;

                case 3:
                    type = "Sprayer";
                    break;

                default:
                    Debug.LogError("Something went wrong");
                    break;
                }
                order[type].Add(rarity, new List <Weapon>());
            }
        }

        // Load weapons
        WeaponManager.Instance().LoadLoadout();

        // Sort through existing Weapons
        List <Weapon> allWeapons = WeaponManager.Instance().weapons;

        foreach (Weapon w in allWeapons)
        {
            WeaponRarity wr = w.rarity;

            if (w is W_AutoGun) // ordering[0]
            {
                switch (wr)
                {
                case WeaponRarity.Common:
                    order["Automatic"][WeaponRarity.Common].Add(w);
                    break;

                case WeaponRarity.Uncommon:
                    order["Automatic"][WeaponRarity.Uncommon].Add(w);
                    break;

                case WeaponRarity.Rare:
                    order["Automatic"][WeaponRarity.Rare].Add(w);
                    break;

                case WeaponRarity.Legendary:
                    order["Automatic"][WeaponRarity.Rare].Add(w);
                    break;

                default:
                    Debug.LogError("Auto weapon does not have listed rarity");
                    break;
                }
            }
            else if (w is W_SemiGun) // ordering[1]
            {
                switch (wr)
                {
                case WeaponRarity.Common:
                    order["Semiautomatic"][WeaponRarity.Common].Add(w);
                    break;

                case WeaponRarity.Uncommon:
                    order["Semiautomatic"][WeaponRarity.Uncommon].Add(w);
                    break;

                case WeaponRarity.Rare:
                    order["Semiautomatic"][WeaponRarity.Rare].Add(w);
                    break;

                case WeaponRarity.Legendary:
                    order["Semiautomatic"][WeaponRarity.Legendary].Add(w);
                    break;

                default:
                    Debug.LogError("Semi weapon does not have listed rarity");
                    break;
                }
            }
            else if (w is W_Launcher) // ordering[2]
            {
                switch (wr)
                {
                case WeaponRarity.Common:
                    order["Launcher"][WeaponRarity.Common].Add(w);
                    break;

                case WeaponRarity.Uncommon:
                    order["Launcher"][WeaponRarity.Uncommon].Add(w);
                    break;

                case WeaponRarity.Rare:
                    order["Launcher"][WeaponRarity.Rare].Add(w);
                    break;

                case WeaponRarity.Legendary:
                    order["Launcher"][WeaponRarity.Legendary].Add(w);
                    break;

                default:
                    Debug.LogError("Launcher weapon does not have listed rarity");
                    break;
                }
            }
            else if (w is W_Sprayer) // ordering[3]
            {
                switch (wr)
                {
                case WeaponRarity.Common:
                    order["Sprayer"][WeaponRarity.Common].Add(w);
                    break;

                case WeaponRarity.Uncommon:
                    order["Sprayer"][WeaponRarity.Uncommon].Add(w);
                    break;

                case WeaponRarity.Rare:
                    order["Sprayer"][WeaponRarity.Rare].Add(w);
                    break;

                case WeaponRarity.Legendary:
                    order["Sprayer"][WeaponRarity.Legendary].Add(w);
                    break;

                default:
                    Debug.LogError("Sprayer weapon does not have listed rarity");
                    break;
                }
            }
        }   // Done with Sorting

        // Set the Maxes
        GetMaxes();

        // Construct the display
        foreach (KeyValuePair <string, Dictionary <WeaponRarity, List <Weapon> > > type in order)
        {
            // Create group
            GameObject typeGroup = Instantiate(groupPrefab, weaponContent.transform);

            // Put name in group
            typeGroup.transform.Find("Weapon Type").Find("Text").GetComponent <Text>().text = type.Key;

            // Get area for Weapons
            Transform weaponList = typeGroup.transform.Find("Weapons");

            foreach (KeyValuePair <WeaponRarity, List <Weapon> > rarity in type.Value)
            {
                Color background;
                switch (rarity.Key)
                {
                case WeaponRarity.Common:
                    background = Color.white;
                    break;

                case WeaponRarity.Uncommon:
                    background = Color.green;
                    break;

                case WeaponRarity.Rare:
                    background = Color.blue;
                    break;

                case WeaponRarity.Legendary:
                    background = Color.magenta;
                    break;

                default:
                    background = Color.black;
                    break;
                }

                foreach (Weapon w in rarity.Value)
                {
                    // Create Weapon Display
                    GameObject weapon = Instantiate(weaponPrefab, weaponList);
                    weapon.GetComponent <Button>().onClick.AddListener(() => ChooseWeapon(w));
                    if (!w.unlocked)
                    {
                        weapon.GetComponent <Button>().interactable = false;
                    }
                    weaponButtons.Add(weapon);

                    // Set Weapon & stats
                    WeaponButtonContatiner wbc = weapon.transform.GetComponent <WeaponButtonContatiner>();
                    wbc.weapon = w;
                    // assign attributes
                    if (w is W_AutoGun)
                    {
                        W_AutoGun auto = (W_AutoGun)w;
                        wbc.damage       = auto.bulletDamage;
                        wbc.recoil       = auto.recoil;
                        wbc.pushback     = auto.bulletPushback;
                        wbc.variable     = 1f / auto.fireRate;
                        wbc.ammoCapacity = auto.ammoCapacity;
                        wbc.reloadSpeed  = 1f / auto.reloadRate;
                    }
                    else if (w is W_SemiGun)
                    {
                        W_SemiGun semi = (W_SemiGun)w;
                        wbc.damage       = semi.bulletDamage;
                        wbc.recoil       = semi.recoil;
                        wbc.pushback     = semi.bulletPushback;
                        wbc.variable     = semi.burstCount;
                        wbc.ammoCapacity = semi.ammoCapacity;
                        wbc.reloadSpeed  = 1f / semi.reloadRate;
                    }
                    else if (w is W_Launcher)
                    {
                        W_Launcher launcher = (W_Launcher)w;
                        wbc.damage       = launcher.coreDamage;
                        wbc.recoil       = launcher.recoil;
                        wbc.pushback     = launcher.corePushback;
                        wbc.variable     = launcher.projectilePower;
                        wbc.ammoCapacity = launcher.ammoCapacity;
                        wbc.reloadSpeed  = 1f / launcher.reloadRate;
                    }
                    else if (w is W_Sprayer)
                    {
                        W_Sprayer sprayer = (W_Sprayer)w;
                        wbc.damage       = sprayer.bulletDamage;
                        wbc.recoil       = sprayer.recoil;
                        wbc.pushback     = sprayer.bulletPushback;
                        wbc.variable     = sprayer.sprayDistance;
                        wbc.ammoCapacity = sprayer.ammoCapacity;
                        wbc.reloadSpeed  = 1f / sprayer.reloadRate;
                    }

                    // Set image
                    weapon.transform.Find("Image").GetComponent <Image>().sprite = w.icon;

                    // Set Rarity
                    weapon.GetComponent <Image>().color = background;
                }
            }
        }
    }