mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-01-23 11:49:44 +01:00
Use chance member in Requirement for random requirements
- it is based on the text in requireID - adjusted parsing
This commit is contained in:
@@ -28,7 +28,6 @@ import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
|
||||
import com.gpl.rpg.AndorsTrail.model.script.Requirement;
|
||||
import com.gpl.rpg.AndorsTrail.model.script.ScriptEffect;
|
||||
import com.gpl.rpg.AndorsTrail.resource.parsers.ResourceParserUtils;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
@@ -297,7 +296,7 @@ public final class ConversationController {
|
||||
result = stats.getSpentGold() >= requirement.value;
|
||||
break;
|
||||
case random:
|
||||
result = Constants.rollResult(ResourceParserUtils.parseChance(requirement.requireID));
|
||||
result = Constants.rollResult(requirement.chance);
|
||||
break;
|
||||
case consumedBonemeals:
|
||||
result = stats.getNumberOfUsedBonemealPotions() >= requirement.value;
|
||||
|
||||
@@ -27,7 +27,9 @@ import com.gpl.rpg.AndorsTrail.model.map.TMXMapFileParser.TMXProperty;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.TMXMapFileParser.TMXTileSet;
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
|
||||
import com.gpl.rpg.AndorsTrail.model.script.Requirement;
|
||||
import com.gpl.rpg.AndorsTrail.resource.parsers.ResourceParserUtils;
|
||||
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCache;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
@@ -227,6 +229,7 @@ public final class TMXMapTranslator {
|
||||
String requireId = null;
|
||||
int requireValue = 0;
|
||||
boolean requireNegation = false;
|
||||
ConstRange requireChance = null;
|
||||
for (TMXProperty p : object.properties) {
|
||||
if (p.name.equalsIgnoreCase("requireType")) {
|
||||
try {
|
||||
@@ -246,7 +249,13 @@ public final class TMXMapTranslator {
|
||||
}
|
||||
}
|
||||
if (requireType == null) return null;
|
||||
return new Requirement(requireType, requireId, requireValue, requireNegation);
|
||||
if (requireType == Requirement.RequirementType.random)
|
||||
{
|
||||
requireChance = ResourceParserUtils.parseChance(requireId);
|
||||
requireId = null;
|
||||
}
|
||||
|
||||
return new Requirement(requireType, requireId, requireValue, requireNegation, requireChance);
|
||||
}
|
||||
|
||||
private static CoordRect getTMXObjectPosition(TMXObject object, TMXMap m) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.script;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
|
||||
public final class Requirement {
|
||||
public static enum RequirementType {
|
||||
@@ -24,18 +25,20 @@ public final class Requirement {
|
||||
public final String requireID;
|
||||
public final int value;
|
||||
public final boolean negate;
|
||||
public final ConstRange chance;
|
||||
|
||||
public Requirement(
|
||||
RequirementType requireType
|
||||
, String requireID
|
||||
, int value
|
||||
, boolean negate
|
||||
, ConstRange chance
|
||||
) {
|
||||
this.requireType = requireType;
|
||||
this.requireID = requireID;
|
||||
this.value = value;
|
||||
this.negate = negate;
|
||||
|
||||
this.chance = chance;
|
||||
}
|
||||
|
||||
public Requirement(QuestProgress qp) {
|
||||
@@ -43,6 +46,7 @@ public final class Requirement {
|
||||
this.requireID = qp.questID;
|
||||
this.value = qp.progress;
|
||||
this.negate = false;
|
||||
this.chance = null;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
@@ -75,7 +79,7 @@ public final class Requirement {
|
||||
case spentGold:
|
||||
return value >= 0;
|
||||
case random:
|
||||
return requireID != null;
|
||||
return chance != null;
|
||||
case timerElapsed:
|
||||
return requireID != null && value >= 0;
|
||||
case wear:
|
||||
|
||||
@@ -22,11 +22,14 @@ public final class ConversationListParser extends JsonCollectionParserFor<Phrase
|
||||
private final JsonArrayParserFor<Requirement> requirementParser = new JsonArrayParserFor<Requirement>(Requirement.class) {
|
||||
@Override
|
||||
protected Requirement parseObject(JSONObject o) throws JSONException {
|
||||
Requirement.RequirementType type = Requirement.RequirementType.valueOf(o.getString(JsonFieldNames.ReplyRequires.requireType));
|
||||
String requireID = o.getString(JsonFieldNames.ReplyRequires.requireID);
|
||||
return new Requirement(
|
||||
Requirement.RequirementType.valueOf(o.getString(JsonFieldNames.ReplyRequires.requireType))
|
||||
,o.getString(JsonFieldNames.ReplyRequires.requireID)
|
||||
type
|
||||
,type == Requirement.RequirementType.random ? null : requireID
|
||||
,o.optInt(JsonFieldNames.ReplyRequires.value, 0)
|
||||
,o.optBoolean(JsonFieldNames.ReplyRequires.negate, false)
|
||||
,type == Requirement.RequirementType.random ? ResourceParserUtils.parseChance(requireID) : null
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user