mirror of
https://github.com/OMGeeky/ATCS.git
synced 2026-02-23 15:38:23 +01:00
Added random requirement and a null pointer fix for the droplist editor
- used in conversations and replace areas - using the droplist chance editor
This commit is contained in:
@@ -54,7 +54,8 @@ public class Requirement extends JSONElement {
|
|||||||
spentGold,
|
spentGold,
|
||||||
consumedBonemeals,
|
consumedBonemeals,
|
||||||
hasActorCondition,
|
hasActorCondition,
|
||||||
factionScore
|
factionScore,
|
||||||
|
random
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SkillID {
|
public enum SkillID {
|
||||||
@@ -104,9 +105,21 @@ public class Requirement extends JSONElement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDesc() {
|
public String getDesc() {
|
||||||
|
String obj_id = "";
|
||||||
|
if (required_obj_id != null)
|
||||||
|
{
|
||||||
|
obj_id = required_obj_id;
|
||||||
|
if (type != null && type == RequirementType.random){
|
||||||
|
obj_id = " Chance " + obj_id + (required_obj_id.contains("/") ? "" : "%");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
obj_id += ":";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ((negated != null && negated) ? "NOT " : "")
|
return ((negated != null && negated) ? "NOT " : "")
|
||||||
+(type == null ? "" : type.toString()+":")
|
+(type == null ? "" : type.toString()+":")
|
||||||
+(required_obj_id == null ? "" : required_obj_id+":")
|
+obj_id
|
||||||
+(required_value == null ? "" : required_value.toString());
|
+(required_value == null ? "" : required_value.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,6 +186,7 @@ public class Requirement extends JSONElement {
|
|||||||
case spentGold:
|
case spentGold:
|
||||||
case timerElapsed:
|
case timerElapsed:
|
||||||
case factionScore:
|
case factionScore:
|
||||||
|
case random:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (this.required_obj != null) this.required_obj.addBacklink((GameDataElement) this.parent);
|
if (this.required_obj != null) this.required_obj.addBacklink((GameDataElement) this.parent);
|
||||||
@@ -225,6 +239,12 @@ public class Requirement extends JSONElement {
|
|||||||
required_obj_id = null;
|
required_obj_id = null;
|
||||||
required_value = null;
|
required_value = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(destType==RequirementType.random)
|
||||||
|
{
|
||||||
|
required_obj_id = "50/100";
|
||||||
|
}
|
||||||
|
|
||||||
type = destType;
|
type = destType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ public class DialogueEditor extends JSONElementEditor {
|
|||||||
private MyComboBox requirementObj;
|
private MyComboBox requirementObj;
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
private JComboBox requirementSkill;
|
private JComboBox requirementSkill;
|
||||||
private JTextField requirementObjId;
|
private JComponent requirementObjId;
|
||||||
private JComponent requirementValue;
|
private JComponent requirementValue;
|
||||||
private BooleanBasedCheckBox requirementNegated;
|
private BooleanBasedCheckBox requirementNegated;
|
||||||
|
|
||||||
@@ -722,6 +722,11 @@ public class DialogueEditor extends JSONElementEditor {
|
|||||||
requirementObjId = null;
|
requirementObjId = null;
|
||||||
requirementValue = addIntegerField(pane, "Quantity: ", requirement.required_value, false, writable, listener);
|
requirementValue = addIntegerField(pane, "Quantity: ", requirement.required_value, false, writable, listener);
|
||||||
break;
|
break;
|
||||||
|
case random:
|
||||||
|
requirementObj = null;
|
||||||
|
requirementObjId = addChanceField(pane, "Chance: ", requirement.required_obj_id, "50/100", writable, listener);
|
||||||
|
requirementValue = null;
|
||||||
|
break;
|
||||||
case hasActorCondition:
|
case hasActorCondition:
|
||||||
requirementObj = addActorConditionBox(pane, project, "Actor Condition: ", (ActorCondition) requirement.required_obj, writable, listener);
|
requirementObj = addActorConditionBox(pane, project, "Actor Condition: ", (ActorCondition) requirement.required_obj, writable, listener);
|
||||||
requirementObjId = null;
|
requirementObjId = null;
|
||||||
|
|||||||
@@ -221,9 +221,9 @@ public class DroplistEditor extends JSONElementEditor {
|
|||||||
Droplist.DroppedItem di = (Droplist.DroppedItem)value;
|
Droplist.DroppedItem di = (Droplist.DroppedItem)value;
|
||||||
if (di.item != null) {
|
if (di.item != null) {
|
||||||
label.setIcon(new ImageIcon(di.item.getIcon()));
|
label.setIcon(new ImageIcon(di.item.getIcon()));
|
||||||
label.setText(di.chance+(di.chance.contains("/") ? "" : "%")+" to get "+di.quantity_min+"-"+di.quantity_max+" "+di.item.getDesc());
|
label.setText(di.chance+(di.chance != null && di.chance.contains("/") ? "" : "%")+" to get "+di.quantity_min+"-"+di.quantity_max+" "+di.item.getDesc());
|
||||||
} else if (!isNull(di)) {
|
} else if (!isNull(di)) {
|
||||||
label.setText(di.chance+(di.chance.contains("/") ? "" : "%")+" to get "+di.quantity_min+"-"+di.quantity_max+" "+di.item_id);
|
label.setText(di.chance+(di.chance != null && di.chance.contains("/") ? "" : "%")+" to get "+di.quantity_min+"-"+di.quantity_max+" "+di.item_id);
|
||||||
} else {
|
} else {
|
||||||
label.setText("New, undefined, dropped item.");
|
label.setText("New, undefined, dropped item.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
|
|||||||
private JPanel requirementParamsPane;
|
private JPanel requirementParamsPane;
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
private JComboBox requirementObj;
|
private JComboBox requirementObj;
|
||||||
private JTextField requirementObjId;
|
private JComponent requirementObjId;
|
||||||
private JComponent requirementValue;
|
private JComponent requirementValue;
|
||||||
private BooleanBasedCheckBox requirementNegated;
|
private BooleanBasedCheckBox requirementNegated;
|
||||||
|
|
||||||
@@ -675,6 +675,11 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
|
|||||||
requirementObjId = null;
|
requirementObjId = null;
|
||||||
requirementValue = addIntegerField(pane, "Quantity: ", requirement.required_value, false, writable, listener);
|
requirementValue = addIntegerField(pane, "Quantity: ", requirement.required_value, false, writable, listener);
|
||||||
break;
|
break;
|
||||||
|
case random:
|
||||||
|
requirementObj = null;
|
||||||
|
requirementObjId = addChanceField(pane, "Chance: ", requirement.required_obj_id, "50/100", writable, listener);
|
||||||
|
requirementValue = null;
|
||||||
|
break;
|
||||||
case hasActorCondition:
|
case hasActorCondition:
|
||||||
requirementObj = addActorConditionBox(pane, project, "Actor Condition: ", (ActorCondition) requirement.required_obj, writable, listener);
|
requirementObj = addActorConditionBox(pane, project, "Actor Condition: ", (ActorCondition) requirement.required_obj, writable, listener);
|
||||||
requirementObjId = null;
|
requirementObjId = null;
|
||||||
@@ -2318,11 +2323,14 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
|
|||||||
if (!activeReplacements.containsKey(area)) {
|
if (!activeReplacements.containsKey(area)) {
|
||||||
activeReplacements.put(area, true);
|
activeReplacements.put(area, true);
|
||||||
}
|
}
|
||||||
for (ReplaceArea.Replacement repl : area.replacements) {
|
|
||||||
if (replacementsForLayer.get(repl.sourceLayer) == null) {
|
if(area.replacements != null) {
|
||||||
replacementsForLayer.put(repl.sourceLayer, new ArrayList<ReplaceArea>());
|
for (ReplaceArea.Replacement repl : area.replacements) {
|
||||||
}
|
if (replacementsForLayer.get(repl.sourceLayer) == null) {
|
||||||
replacementsForLayer.get(repl.sourceLayer).add(area);
|
replacementsForLayer.put(repl.sourceLayer, new ArrayList<ReplaceArea>());
|
||||||
|
}
|
||||||
|
replacementsForLayer.get(repl.sourceLayer).add(area);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user