//shorten the modifier strings private string displayMod(Enemy foe, int element) { if (EnemyIntel.main.hasIntel(foe.Stats.name, element)) { Elements.vsElement modifier = Elements.getLevel(foe.Stats.vsElement[element]); switch (modifier) { case Elements.vsElement.REPEL: return("Rp"); case Elements.vsElement.DRAIN: return("Dr"); case Elements.vsElement.BLOCK: return("Bl"); case Elements.vsElement.RESIST: return("Rs"); case Elements.vsElement.NEUTRAL: return("--"); case Elements.vsElement.WEAK: return("Wk"); case Elements.vsElement.SUPERWEAK: return("Wk"); } } return("??"); }
//work with elemental weak/res modifiers public float modElementState(float curr, int element) { if (vsElem[element] == 0) { return(curr); } Elements.vsElement level = Elements.getLevel(curr); return(Elements.getFloat(Elements.modLevel(level, vsElem[element]))); }
protected override bool buffCheck(CastData data, ICaster target, ICaster caster, int powerMod) { Elements.vsElement vs = target.Stats.getModVsElement(target.BuffDebuff, element); switch (vs) { case Elements.vsElement.REPEL: data.repel = true; inflictBuff(caster, target, powerMod); break; case Elements.vsElement.DRAIN: buff.makeBuff(); inflictBuff(target, caster, powerMod); break; case Elements.vsElement.RESIST: if ((Random.Range(0.0F, 1F) * 100) > 50) { data.isHit = false; return(false); } inflictBuff(target, caster, powerMod); break; case Elements.vsElement.BLOCK: data.isHit = false; return(false); case Elements.vsElement.NEUTRAL: inflictBuff(target, caster, powerMod); break; case Elements.vsElement.WEAK: inflictBuff(target, caster, powerMod * 1.5F); break; case Elements.vsElement.SUPERWEAK: inflictBuff(target, caster, powerMod * 2); break; case Elements.vsElement.INVALID: throw new System.NotImplementedException(); } data.isBuff = true; data.isHit = true; data.buffInflicted = buff; return(true); }
public Elements.vsElement modElementLevel(float curr, int element) { Elements.vsElement level = Elements.getLevel(curr); return(Elements.modLevel(level, vsElem[element])); }
//Spawns elemental popup with proper icon private void spawnElementPopup(int element, Elements.vsElement vElem, Transform pos) { switch (vElem) { case Elements.vsElement.REPEL: //popp.spawnSprite("popup_reflect", POP_TIMER, pos.position + OVER_OFFSET); popp.spawnText("REPEL", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, Color.magenta, Color.white); AudioPlayer.main.playSFX("sfx_spell_reflect"); break; case Elements.vsElement.DRAIN: //popp.spawnSprite("popup_absorb", POP_TIMER, pos.position + OVER_OFFSET); popp.spawnText("DRAIN", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, Color.green, Color.white); AudioPlayer.main.playSFX("sfx_spell_drain"); break; case Elements.vsElement.BLOCK: //popp.spawnSprite("popup_nullify", POP_TIMER, pos.position + OVER_OFFSET); popp.spawnText("BLOCK", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, Color.gray, Color.white); AudioPlayer.main.playSFX("sfx_spell_block"); break; case Elements.vsElement.RESIST: //popp.spawnSprite("popup_resistant", POP_TIMER, pos.position + OVER_OFFSET); popp.spawnText("<size=36>RESIST</size>", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, Color.yellow, Color.white); AudioPlayer.main.playSFX("sfx_spell_resist"); break; case Elements.vsElement.WEAK: //popp.spawnSprite("ui_elem_popup", POP_TIMER, pos.position + OVER_OFFSET); popp.spawnSprite("popup_weak_backing", POP_TIMER, pos.position + BACK_OFFSET); popp.spawnText("<size=36>WEAK!</size>", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, new Color(255f / 255f, 35f / 255f, 25f / 255f), new Color(255f / 255f, 100f / 255f, 85f / 255f)); break; case Elements.vsElement.SUPERWEAK: popp.spawnSprite("popup_weak_backing", POP_TIMER, pos.position + BACK_OFFSET); popp.spawnText("<size=36>WEAK!</size>", POP_TIMER, pos.position + OVER_OFFSET + TEXT_OFFSET, new Color(255f / 255f, 35f / 255f, 25f / 255f), new Color(255f / 255f, 100f / 255f, 85f / 255f)); break; } if (vElem != Elements.vsElement.NEUTRAL) { switch (element) { case 0: popp.spawnSprite("popup_slash", POP_TIMER, pos.position + ELEM_OFFSET + TEXT_OFFSET); break; case 1: popp.spawnSprite("popup_fire", POP_TIMER, pos.position + ELEM_OFFSET + TEXT_OFFSET); break; case 2: popp.spawnSprite("popup_ice", POP_TIMER, pos.position + ELEM_OFFSET + TEXT_OFFSET); break; case 3: popp.spawnSprite("popup_bolt", POP_TIMER, pos.position + ELEM_OFFSET + TEXT_OFFSET); break; } } }