public void doOnHitScriptBasedOnFilename(string filename, Creature crt, Player pc) { if (!filename.Equals("none")) { try { if (filename.Equals("onHitBeetleFire.cs")) { float resist = (float)(1f - ((float)pc.damageTypeResistanceTotalFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 0; int fireDam = (int)(damage * resist); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } addLogText("<font color='aqua'>" + pc.name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); pc.hp -= fireDam; } else if (filename.Equals("onHitOneFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = 1.0f; int fireDam = (int)(damage * resist); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitOneTwoFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 0; int fireDam = (int)(damage * resist); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitTwoThreeFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 1; int fireDam = (int)(damage * resist); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitPcPoisonedLight.cs")) { int saveChkRoll = gv.sf.RandInt(20); int saveChk = saveChkRoll + pc.reflex; int DC = 13; if (saveChk >= DC) //passed save check { addLogText("<font color='yellow'>" + pc.name + " avoids being poisoned" + "</font>" + "<BR>"); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + saveChkRoll + " + " + pc.reflex + " >= " + DC + "</font>" + "<BR>"); } } else //failed check { addLogText("<font color='red'>" + pc.name + " is poisoned" + "</font>" + "<BR>"); Effect ef = gv.mod.getEffectByTag("poisonedLight"); pc.AddEffectByObject(ef, gv.mod.WorldTime); } } else if (filename.Equals("onHitPcPoisonedMedium.cs")) { int saveChkRoll = gv.sf.RandInt(20); int saveChk = saveChkRoll + pc.reflex; int DC = 16; if (saveChk >= DC) //passed save check { addLogText("<font color='yellow'>" + pc.name + " avoids being poisoned" + "</font>" + "<BR>"); if (gv.mod.debugMode) { addLogText("<font color='yellow'>" + saveChkRoll + " + " + pc.reflex + " >= " + DC + "</font>" + "<BR>"); } } else //failed check { addLogText("<font color='red'>" + pc.name + " is poisoned" + "</font>" + "<BR>"); Effect ef = gv.mod.getEffectByTag("poisonedMedium"); pc.AddEffectByObject(ef, gv.mod.WorldTime); } } } catch (Exception ex) { //IBMessageBox.Show(game, "failed to run script"); } } }
public void doOnHitScriptBasedOnFilename(String filename, Creature crt, Player pc) { if (!filename.Equals("none")) { try { if (filename.Equals("onHitBeetleFire.cs")) { float resist = (float)(1f - ((float)pc.damageTypeResistanceTotalFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 0; int fireDam = (int)(damage * resist); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } gv.cc.addLogText("<font color='aqua'>" + pc.name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); pc.hp -= fireDam; } else if (filename.Equals("onHitMaceOfStunning.cs")) { int tryHold = gv.sf.RandInt(100); if (tryHold > 50) { //attempt to hold PC int saveChkRoll = gv.sf.RandInt(20); int saveChk = saveChkRoll + crt.fortitude; int DC = 15; if (saveChk >= DC) //passed save check { gv.cc.addLogText("<font color='yellow'>" + crt.cr_name + " avoids stun (" + saveChkRoll + " + " + crt.fortitude + " >= " + DC + ")</font><BR>"); } else { gv.cc.addLogText("<font color='red'>" + crt.cr_name + " is stunned by mace (" + saveChkRoll + " + " + crt.fortitude + " < " + DC + ")</font><BR>"); crt.cr_status = "Held"; Effect ef = mod.getEffectByTag("hold"); crt.AddEffectByObject(ef, mod.WorldTime); } } } else if (filename.Equals("onHitBeetleAcid.cs")) { float resist = (float)(1f - ((float)pc.damageTypeResistanceTotalAcid / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 0; int acidDam = (int)(damage * resist); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " acidDam = " + acidDam + "</font>" + "<BR>"); } gv.cc.addLogText("<font color='aqua'>" + pc.name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='lime'>" + acidDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); pc.hp -= acidDam; //attempt to hold PC int saveChkRoll = gv.sf.RandInt(20); //int saveChk = saveChkRoll + target.Will; int saveChk = saveChkRoll + pc.fortitude; int DC = 10; if (saveChk >= DC) //passed save check { gv.cc.addLogText("<font color='yellow'>" + pc.name + " avoids the acid stun (" + saveChkRoll + " + " + pc.fortitude + " >= " + DC + ")</font><BR>"); } else { gv.cc.addLogText("<font color='red'>" + pc.name + " is held by an acid stun (" + saveChkRoll + " + " + pc.fortitude + " < " + DC + ")</font><BR>"); pc.charStatus = "Held"; Effect ef = mod.getEffectByTag("hold"); pc.AddEffectByObject(ef, mod.WorldTime); } } else if (filename.Equals("onHitOneFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = 1.0f; int fireDam = (int)(damage * resist); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } gv.cc.addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitOneTwoFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 0; int fireDam = (int)(damage * resist); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } gv.cc.addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitTwoThreeFire.cs")) { float resist = (float)(1f - ((float)crt.damageTypeResistanceValueFire / 100f)); float damage = (1 * gv.sf.RandInt(2)) + 1; int fireDam = (int)(damage * resist); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + "resist = " + resist + " damage = " + damage + " fireDam = " + fireDam + "</font>" + "<BR>"); } gv.cc.addLogText("<font color='aqua'>" + crt.cr_name + "</font>" + "<font color='white'>" + " is burned for " + "</font>" + "<font color='red'>" + fireDam + "</font>" + "<font color='white'>" + " hit point(s)" + "</font>" + "<BR>"); crt.hp -= fireDam; } else if (filename.Equals("onHitPcPoisonedLight.cs")) { int saveChkRoll = gv.sf.RandInt(20); int saveChk = saveChkRoll + pc.reflex; int DC = 13; if (saveChk >= DC) //passed save check { gv.cc.addLogText("<font color='yellow'>" + pc.name + " avoids being poisoned" + "</font>" + "<BR>"); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + saveChkRoll + " + " + pc.reflex + " >= " + DC + "</font>" + "<BR>"); } } else //failed check { gv.cc.addLogText("<font color='red'>" + pc.name + " is poisoned" + "</font>" + "<BR>"); Effect ef = mod.getEffectByTag("poisonedLight"); pc.AddEffectByObject(ef, mod.WorldTime); } } else if (filename.Equals("onHitPcPoisonedMedium.cs")) { int saveChkRoll = gv.sf.RandInt(20); int saveChk = saveChkRoll + pc.reflex; int DC = 16; if (saveChk >= DC) //passed save check { gv.cc.addLogText("<font color='yellow'>" + pc.name + " avoids being poisoned" + "</font>" + "<BR>"); if (mod.debugMode) { gv.cc.addLogText("<font color='yellow'>" + saveChkRoll + " + " + pc.reflex + " >= " + DC + "</font>" + "<BR>"); } } else //failed check { gv.cc.addLogText("<font color='red'>" + pc.name + " is poisoned" + "</font>" + "<BR>"); Effect ef = mod.getEffectByTag("poisonedMedium"); pc.AddEffectByObject(ef, mod.WorldTime); } } } catch (Exception ex) { //IBMessageBox.Show(game, "failed to run script"); } } }