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); }
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); }
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]; }
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); }
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; }
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); }
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); }
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); }
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); }
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); }
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]; }
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); }
// 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); } }
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); }
public Sword(string name, WeaponRarity rarity) : base(name, SwordDefaultMinDamage, SwordDefaultMaxDamage, SwordDefaultSocketCount, rarity) { }
public Sword(WeaponRarity rarity, string name) : base(rarity, name, defautMinDamage, defautMaxDamage, defautSockets) { }
public Sword(WeaponRarity rarity) : base(4, 6, 3, rarity) { }
public Knife(WeaponRarity rarity, string weaponName) : base(3, 4, 2, rarity, weaponName) { }
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; } } }
public Knife(WeaponRarity rarity, string name) : base(rarity, name, 3, 4, 2) { }
public Knife(WeaponRarity rarity) : base(3, 4, 2, rarity) { }
public Axe(WeaponRarity rarity, string name) : base(rarity, name, NUMBER_OF_SOCKETS, INITIAL_MIN_DAMAGE, INITIAL_MAX_DAMAGE) { }
public Axe(WeaponRarity rarity, string name) : base(rarity, name, 5, 10, 4) { }
public Sword(WeaponRarity rarity, string name) : base(rarity, name, 4, 6, 3) { }
public Knife(string name, WeaponRarity rarity) : base(name, rarity, InitialMinDamage, InitialMaxDamage, GemSocketsNumber) { }
public Sword(string name, WeaponRarity rarity) : base(name, rarity, MaxDamage, MinDamage, GemSockets) { }
// 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; } } } }