mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Fixed ironman mode being stuck after permadeath
This commit is contained in:
parent
a63867627e
commit
f501468ead
9 changed files with 30 additions and 33 deletions
|
|
@ -48,7 +48,7 @@ class ShootingStarMiningPulse(player: Player?, node: Scenery?, val star: Shootin
|
|||
val bonusXp = 75 * player.skills.getStaticLevel(Skills.MINING)
|
||||
player.incrementAttribute("/save:shooting-star:bonus-xp", bonusXp)
|
||||
Repository.sendNews(player.username + " is the discoverer of the crashed star near " + star.location + "!")
|
||||
player.sendMessage("You have ${player.skills.experienceMutiplier * player.getAttribute("shooting-star:bonus-xp", 0).toDouble()} bonus xp towards mining stardust.")
|
||||
player.sendMessage("You have ${player.skills.experienceMultiplier * player.getAttribute("shooting-star:bonus-xp", 0).toDouble()} bonus xp towards mining stardust.")
|
||||
ShootingStarPlugin.submitScoreBoard(player)
|
||||
star.isDiscovered = true
|
||||
return player.skills.getLevel(Skills.MINING) >= star.miningLevel
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ public final class PCRewardInterface extends ComponentPlugin {
|
|||
} else if (skillId == Skills.MAGIC || skillId == Skills.RANGE) {
|
||||
divideBy = 29;//19.1-31 ideal range
|
||||
}
|
||||
return (int) ((level * level) / divideBy) * (player.getSkills().experienceMutiplier / 2);
|
||||
return (int) ((level * level) / divideBy) * (player.getSkills().experienceMultiplier / 2);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -283,7 +283,7 @@ public final class PCRewardInterface extends ComponentPlugin {
|
|||
if (reward.isSkillReward()) {
|
||||
final double experience = ((int) calculateExperience(player, reward.getSkill()) * points);
|
||||
player.getSkills().addExperience(reward.getSkill(), experience);
|
||||
message = "The Void Knight has granted you " + (int) (experience * player.getSkills().experienceMutiplier) + " " + reward.getName() + ".";
|
||||
message = "The Void Knight has granted you " + (int) (experience * player.getSkills().experienceMultiplier) + " " + reward.getName() + ".";
|
||||
} else {
|
||||
if (!reward.checkItemRequirement(player, option)) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||
}
|
||||
}
|
||||
71 -> when(stage){
|
||||
0 -> options("Set Ironman Mode (current: ${player.ironmanManager.mode.name})", "Change XP Rate (current: ${player.skills.experienceMutiplier}x)", "I'm ready now.").also { stage++ }
|
||||
0 -> options("Set Ironman Mode (current: ${player.ironmanManager.mode.name})", "Change XP Rate (current: ${player.skills.experienceMultiplier}x)", "I'm ready now.").also { stage++ }
|
||||
1 -> when(buttonId){
|
||||
1 -> options("None","Standard","Hardcore (Permadeath!)","Ultimate","Nevermind.").also { stage = 10 }
|
||||
2 -> options("1.0x","2.5x","5.0x","10x").also { stage = 20 }
|
||||
|
|
@ -107,7 +107,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||
val mode = IronmanMode.values()[buttonId - 1]
|
||||
player.dialogueInterpreter.sendDialogue("You set your ironman mode to: ${mode.name}.")
|
||||
player.ironmanManager.mode = mode
|
||||
if (player.skills.experienceMutiplier == 10.0 && mode != IronmanMode.HARDCORE) player.skills.experienceMutiplier = 5.0
|
||||
if (player.skills.experienceMultiplier == 10.0 && mode != IronmanMode.HARDCORE) player.skills.experienceMultiplier = 5.0
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -124,7 +124,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||
return true
|
||||
}
|
||||
player.dialogueInterpreter.sendDialogue("You set your XP rate to: ${rate}x.")
|
||||
player.skills.experienceMutiplier = rate
|
||||
player.skills.experienceMultiplier = rate
|
||||
stage = 0
|
||||
}
|
||||
|
||||
|
|
@ -154,9 +154,9 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||
{
|
||||
setAttribute(player, "/save:permadeath", true)
|
||||
}
|
||||
else if(player.skills.experienceMutiplier == 10.0)
|
||||
else if(player.skills.experienceMultiplier == 10.0)
|
||||
{
|
||||
player.skills.experienceMutiplier = 5.0
|
||||
player.skills.experienceMultiplier = 5.0
|
||||
}
|
||||
|
||||
//This overwrites the stuck dialogue after teleporting to Lumbridge for some reason
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
stage = 41;
|
||||
break;
|
||||
case 2:
|
||||
npc("Your current XP rate is: " + player.getSkills().experienceMutiplier);
|
||||
npc("Your current XP rate is: " + player.getSkills().experienceMultiplier);
|
||||
stage = 11;
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -123,7 +123,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
break;
|
||||
|
||||
case 11:
|
||||
if (player.getSkills().experienceMutiplier == 5.0) {
|
||||
if (player.getSkills().experienceMultiplier == 5.0) {
|
||||
player.newPlayer = player.getSkills().getTotalLevel() < 50;
|
||||
options("Change xp rate", "Nevermind.");
|
||||
stage++;
|
||||
|
|
@ -152,7 +152,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
switch(buttonId){
|
||||
case 1:
|
||||
if(player.newPlayer) {
|
||||
player.getSkills().experienceMutiplier = 1.0;
|
||||
player.getSkills().experienceMultiplier = 1.0;
|
||||
stage = 14;
|
||||
} else {
|
||||
stage = 15;
|
||||
|
|
@ -161,7 +161,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
break;
|
||||
case 2:
|
||||
if(player.newPlayer){
|
||||
player.getSkills().experienceMutiplier = 2.5;
|
||||
player.getSkills().experienceMultiplier = 2.5;
|
||||
stage = 14;
|
||||
} else {
|
||||
stage = 15;
|
||||
|
|
@ -173,7 +173,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
return true;
|
||||
case 4:
|
||||
if (player.newPlayer) {
|
||||
player.getSkills().experienceMutiplier = 10.0;
|
||||
player.getSkills().experienceMultiplier = 10.0;
|
||||
stage = 14;
|
||||
} else {
|
||||
stage = 15;
|
||||
|
|
@ -183,7 +183,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
npc("One moment, please...");
|
||||
break;
|
||||
case 14:
|
||||
npc("Tada, your xp rate is now " + player.getSkills().experienceMutiplier);
|
||||
npc("Tada, your xp rate is now " + player.getSkills().experienceMultiplier);
|
||||
stage = 131;
|
||||
break;
|
||||
case 15:
|
||||
|
|
@ -376,7 +376,7 @@ public final class HansDialoguePlugin extends DialoguePlugin {
|
|||
switch (buttonId) {
|
||||
case 1:
|
||||
interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "Tada! Your experience rate is now 10x.", "Happy Scaping!");
|
||||
player.getSkills().experienceMutiplier = 10.0;
|
||||
player.getSkills().experienceMultiplier = 10.0;
|
||||
stage = 50;
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import core.api.*
|
|||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.VarpManager
|
||||
import core.game.node.entity.player.info.login.PlayerSaver
|
||||
import core.game.node.entity.player.link.IronmanMode
|
||||
import core.game.node.entity.player.link.SavedData
|
||||
import core.game.node.entity.player.link.diary.DiaryType
|
||||
import core.game.node.entity.player.link.quest.QuestRepository
|
||||
|
|
@ -42,6 +43,7 @@ fun permadeath(target: Player) {
|
|||
}
|
||||
}
|
||||
target.musicPlayer.clearUnlocked()
|
||||
target.ironmanManager.mode = IronmanMode.NONE
|
||||
PlayerSaver(target).save()
|
||||
target.clear()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -628,11 +628,6 @@ public class Player extends Entity {
|
|||
Repository.sendNews("Permadeath Hardcore Iron" + gender + " " + this.getUsername() + " has fallen. Total Level: " + this.getSkills().getTotalLevel()); // Not enough room for XP
|
||||
permadeath(this);
|
||||
return;
|
||||
} else {
|
||||
Repository.sendNews("Hardcore Iron " + gender + " " + this.getUsername() + " has fallen. Total Level: " + this.getSkills().getTotalLevel()); // Not enough room for XP
|
||||
this.getIronmanManager().setMode(IronmanMode.STANDARD);
|
||||
asPlayer().getSavedData().getActivityData().setHardcoreDeath(true);
|
||||
this.sendMessage("You have fallen as a Hardcore Iron Man, your Hardcore status has been revoked.");
|
||||
}
|
||||
}
|
||||
GroundItemManager.create(new Item(526), getLocation(), k);
|
||||
|
|
|
|||
|
|
@ -355,13 +355,13 @@ class PlayerSaveParser(val player: Player) {
|
|||
val skillData = saveFile!!["skills"] as JSONArray
|
||||
player.skills.parse(skillData)
|
||||
player.skills.experienceGained = saveFile!!["totalEXP"].toString().toDouble()
|
||||
player.skills.experienceMutiplier = saveFile!!["exp_multiplier"].toString().toDouble()
|
||||
player.skills.experienceMultiplier = saveFile!!["exp_multiplier"].toString().toDouble()
|
||||
if (GameWorld.settings?.default_xp_rate != 5.0) {
|
||||
player.skills.experienceMutiplier = GameWorld.settings?.default_xp_rate!!
|
||||
player.skills.experienceMultiplier = GameWorld.settings?.default_xp_rate!!
|
||||
}
|
||||
val divisor: Double
|
||||
if(player.skills.experienceMutiplier >= 10 && !player.attributes.containsKey("permadeath")){ //exclude permadeath HCIMs from XP squish
|
||||
divisor = player.skills.experienceMutiplier / 5.0
|
||||
if(player.skills.experienceMultiplier >= 10 && !player.attributes.containsKey("permadeath")){ //exclude permadeath HCIMs from XP squish
|
||||
divisor = player.skills.experienceMultiplier / 5.0
|
||||
player.skills.correct(divisor)
|
||||
}
|
||||
if (saveFile!!.containsKey("milestone")) {
|
||||
|
|
|
|||
|
|
@ -569,7 +569,7 @@ class PlayerSaver (val player: Player){
|
|||
}
|
||||
root.put("skills",skills)
|
||||
root.put("totalEXP",player.skills.experienceGained.toString())
|
||||
root.put("exp_multiplier",player.skills.experienceMutiplier.toString())
|
||||
root.put("exp_multiplier",player.skills.experienceMultiplier.toString())
|
||||
if(player.skills.combatMilestone > 0 || player.skills.skillMilestone > 0){
|
||||
val milestone = JSONObject()
|
||||
milestone.put("combatMilestone",player.skills.combatMilestone.toString())
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class Skills {
|
|||
/**
|
||||
* Represents the constant modifier of experience.
|
||||
*/
|
||||
public double experienceMutiplier = 5.0;
|
||||
public double experienceMultiplier = 5.0;
|
||||
|
||||
/**
|
||||
* The maximum experience multiplier.
|
||||
|
|
@ -289,7 +289,7 @@ public final class Skills {
|
|||
private double getExperienceMod(int slot, double experience, boolean playerMod, boolean multiplyer) {
|
||||
//Keywords for people ctrl + Fing the project
|
||||
//xprate xp rate xp multiplier skilling rate
|
||||
return experienceMutiplier;
|
||||
return experienceMultiplier;
|
||||
/*if (!(entity instanceof Player)) {
|
||||
return 1.0;
|
||||
}
|
||||
|
|
@ -414,14 +414,14 @@ public final class Skills {
|
|||
setLifepoints(staticLevels[i]);
|
||||
}
|
||||
}
|
||||
experienceMutiplier = 5.0;
|
||||
experienceMultiplier = 5.0;
|
||||
updateCombatLevel();
|
||||
}
|
||||
|
||||
public void parseExpRate(ByteBuffer buffer) {
|
||||
experienceMutiplier = buffer.getDouble();
|
||||
if(GameWorld.getSettings().getDefault_xp_rate() != experienceMutiplier){
|
||||
experienceMutiplier = GameWorld.getSettings().getDefault_xp_rate();
|
||||
experienceMultiplier = buffer.getDouble();
|
||||
if(GameWorld.getSettings().getDefault_xp_rate() != experienceMultiplier){
|
||||
experienceMultiplier = GameWorld.getSettings().getDefault_xp_rate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -445,7 +445,7 @@ public final class Skills {
|
|||
}
|
||||
|
||||
public void saveExpRate(ByteBuffer buffer) {
|
||||
buffer.putDouble(experienceMutiplier);
|
||||
buffer.putDouble(experienceMultiplier);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue