/* Called every frame weapon is equipped */ public void OnEquip(WeaponInventory inv, WeaponTables tables, WeaponFactory.CLASS weaponClass) { foreach (var sys in projSystems) { sys.OnEquip(inv, tables, weaponClass); } }
public void setDescription(WeaponFactory.CLASS weaponClass) { string descr = tables.tagWeapon.get(weaponClass) == WeaponFactory.TAG.MELEE ? "Melee" : "Ranged"; descr += " Damage: "; descr += tables.damage.get(weaponClass) + "\n"; descr += tables.about.getDescr(weaponClass); if (tables.tagWeapon.get(weaponClass) == WeaponFactory.TAG.MELEE) { if (meleeInfo == null) { return; } meleeInfo.name = tables.about.getName(weaponClass); meleeInfo.description = descr; meleeInfo.weaponClass = weaponClass; } else { if (rangeInfo == null) { return; } rangeInfo.name = tables.about.getName(weaponClass); rangeInfo.description = descr; rangeInfo.weaponClass = weaponClass; } }
public WeaponFactory.CLASS SetWeapon(WeaponFactory.CLASS weaponClass) { var weapon = new WeaponSystem(weaponClass, this.tables); WeaponFactory.CLASS old; if (equipSound) { audioSrc.clip = equipSound; audioSrc.Play(); } if (tables.tagWeapon.get(weaponClass) == WeaponFactory.TAG.MELEE) { old = this.meleeWeaponClass; this.meleeWeaponClass = weaponClass; SetMelee(weapon); } else { old = this.rangedWeaponClass; this.rangedWeaponClass = weaponClass; SetRanged(weapon); } wepsGot++; return(old); }
public void OnTriggerEnter2D(Collider2D collider) { WeaponInventory weaponInv = collider.GetComponent <WeaponInventory>(); PlayerStats pStats = collider.GetComponent <PlayerStats>(); if (weaponInv == null) { return; } /* * used = true; * weaponInv.SetWeapon(weaponClass); * transform.localScale *= 0.5f; * * PlayerPrefs.SetInt("Chests", PlayerPrefs.GetInt("Chests") + 1); * Destroy(descrInfo); * * this.enabled = false; */ int currAmmo = pStats.ammo; weaponClass = weaponInv.SetWeapon(weaponClass); SetDescription(); if (!used) { transform.localScale *= 0.5f; PlayerPrefs.SetInt("Chests", PlayerPrefs.GetInt("Chests") + 1); used = true; return; } pStats.safeSetAmmo(currAmmo); }
public ProjectileStats constructProjectileStats(WeaponFactory.CLASS weaponClass) { //sets up assuming a ranged weapon var pStats = new ProjectileStats() { prefab = bulletTemplate, damage = projectileDamage(weaponClass), lifeTime = (weaponMods.projectileLifetimeAddition + projectileLifeTimesTable.get(weaponClass).Value) * weaponMods.projectileLifetimeMultiplier, ammoRefill = tables.ammoPerKill.get(weaponClass).Value }; if (tables.tagWeapon.get(weaponClass) == WeaponFactory.TAG.MELEE) { //corrects if melee pStats.damage = projectileDamage(weaponClass); pStats.lifeTime = projectileLifeTimesTable.get(weaponClass).Value; pStats.prefab = projectilePrefabTable.get(weaponClass); pStats.prefab.transform.localScale = Vector3.one * (1 + weaponMods.meleeSizeAddition) * weaponMods.meleeSizeMultiplier * 0.5f; //swordScale //Debug.Log("Scale: " + pStats.prefab.transform.localScale.ToString()); } //pStats.lifeTime = projectileLifeTimesTable.get(weaponClass).Value; return(pStats); }
public int projectileDamage(WeaponFactory.CLASS weaponClass) { if (tables.tagWeapon.get(weaponClass) == WeaponFactory.TAG.MELEE) { return((int)((damageTable.get(weaponClass).Value + weaponMods.meleeDamageAddition) * weaponMods.meleeDamageMultiplier)); } return((int)((damageTable.get(weaponClass).Value + weaponMods.rangedDamageAddition) * weaponMods.rangedDamageMultiplier)); }
protected override void OnEquip(WeaponInventory inv) { this.duration = this.tables.revertTime.get(this.weaponClass).Value; equipTimeInstant = Time.time; this.entityStats = inv.GetComponent <EntityStats>(); foreach (var entAttr in entityAttributes) { this.entityStats.AddAttribute(entAttr, entityStats); } preClassWeapon = inv.getMeleeWeaponClass(); }
public static ProjectileSystem[] DeriveSystems(WeaponFactory.CLASS weaponClass, WeaponTables tables) { var systems = new List <ProjectileSystem>(); foreach (var makeMethod in WeaponFactory.makeSystemMethods) { var system = makeMethod(weaponClass, tables); if (system != null) { systems.Add(system); } } return(systems.ToArray()); }
private void Start() { audioSrc = GetComponent <AudioSource>(); if (audioSrc == null) { audioSrc = gameObject.AddComponent <AudioSource>(); } PlayerClasses PC = GetComponent <PlayerClasses>(); PC.getMods(weaponMods); meleeWeaponClass = PC.melee; rangedWeaponClass = PC.ranged; SetWeapon(this.meleeWeaponClass); SetWeapon(this.rangedWeaponClass); }
public void updateWeaponDisplay() { if (weapInv != null) { WeaponFactory.CLASS meleeClass = weapInv.getMeleeWeaponClass(); WeaponFactory.CLASS rangeClass = weapInv.getRangedWeaponClass(); if (meleeClass == meleeMem && rangeClass == rangeMem) { return; } meleeSlot.sprite = weapInv.getWeaponImage(true); meleeLabel.text = "" + tables.about.getName(meleeClass); setDescription(meleeClass); rangeSlot.sprite = weapInv.getWeaponImage(false); rangedLabel.text = "" + tables.about.getName(rangeClass); setDescription(rangeClass); meleeMem = meleeClass; rangeMem = rangeClass; } }
public void setSpecialAttributes(PlayerClasses pc) { melee = pc.melee; ranged = pc.ranged; chainLighting = pc.chainLighting; chainChance = pc.chainChance; chainLength = pc.chainLength; lightingDamage = pc.lightingDamage; chainRadius = pc.chainRadius; lightingPrefab = pc.lightingPrefab; lunge = pc.lunge; meleeLungeDistance = pc.meleeLungeDistance; rangedLungeDistance = pc.rangedLungeDistance; killChain = pc.killChain; killRequirement = pc.killRequirement; chainTime = pc.chainTime; speedBoost = pc.speedBoost; }
public AudioClip getSound(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classSounds, (p) => p.weaponClass == weaponClass).clip); }
public void SetWeaponClass(WeaponFactory.CLASS weaponClass) { this.weaponClass = weaponClass; SetDescription(); }
public GameObject get(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classPrefabPairs, (p) => p.weaponClass == weaponClass).prefab); }
public Sprite get(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classSpritePairs, (p) => p.weaponClass == weaponClass).sprite); }
public float getPitch(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classSounds, (p) => p.weaponClass == weaponClass).pitch); }
public WeaponSystem(WeaponFactory.CLASS weaponClass, WeaponTables tables) { this.projSystems = WeaponFactory.DeriveSystems(weaponClass, tables); }
public void OnEquip(WeaponInventory inv, WeaponTables tables, WeaponFactory.CLASS weaponClass) { this.weaponClass = weaponClass; this.tables = tables; this.OnEquip(inv); }
public int?get(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(classIntPairs, (p) => p.weaponClass == weaponClass)?.integer); }
public string getName(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classDescrTrios, (p) => p.weaponClass == weaponClass).name); }
public string getDescr(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classDescrTrios, (p) => p.weaponClass == weaponClass).description); }
public float?get(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classFloatPairs, (p) => p.name == weaponClass)?.floatValue); }
public WeaponFactory.TAG get(WeaponFactory.CLASS name) { return(System.Array.Find(pairs, (p) => p.name == name).tag); }
public float getVolume(WeaponFactory.CLASS weaponClass) { return(System.Array.Find(this.classSounds, (p) => p.weaponClass == weaponClass).volume); }