Compare commits

...

21 Commits

Author SHA1 Message Date
OMGeeky
0ef703d82e Merge remote-tracking branch 'omgeeky/spawnchance' into spawnchance 2023-08-31 23:50:15 +02:00
OMGeeky
2339a9307c respawnspeed (originally spawnchance) renamed & added to UI 2023-08-31 23:49:03 +02:00
Nut.andor
7dcdb90750 new version 2023-08-31 23:28:32 +02:00
OMGeeky
b638c31ebe update latest 2023-08-30 15:01:04 +02:00
OMGeeky
862f4b7366 respawnspeed (originally spawnchance) renamed & added to UI 2023-08-30 14:40:50 +02:00
Nut.andor
693de98212 Revert "v0.6.19"
This reverts commit 3f4bf58375.
2023-02-04 20:41:21 +01:00
Nut.andor
3f4bf58375 v0.6.19
png names
2023-02-04 03:09:18 +01:00
Nut.andor
7ae4d9d3f6 v0.6.18:
- https:
2022-09-03 23:16:48 +02:00
Nut.andor
0f20f0cd6d Sprites sorted
Missing sprites added (actorconditions, items, monster, effect)
monsters_warrior1 too much

monsters_arulir   makes ATCS crash??

and I omitted fatboy73 this time, because the png has so many holes that would be in ATCS at the beginning of NPCs
2022-02-05 03:53:59 +01:00
Nut.andor
481956cfa5 I probably didn't understand the concept of the nsi compiler, so instead of using relative or variable paths I only got it with a fix path 2022-01-30 00:24:39 +01:00
Nut.andor
7c282aae53 Missing sprites added (actorconditions, items, monster, effect)
and sorted
2022-01-29 02:16:38 +01:00
Nut.andor
1fd3e6253e Increased version number for the upcoming release 2022-01-28 23:50:07 +01:00
Gonk
70f61f0281 Prevent crash when creating a new replace area 2022-01-25 21:33:27 +01:00
Nut
2f82fd13a6 Merge pull request #2 from atsymboldot/worldmap-label-fix
Fix disappearing worldmap labels bug
2021-12-26 14:08:16 +01:00
Nut
f7e5785970 Merge pull request #1 from atsymboldot/master
Add spore immunity skill for Fungi Panic
2021-12-26 14:07:26 +01:00
Nut
084b23f641 helpful error message added 2021-12-26 14:02:14 +01:00
Nathan Watson
ff4d8a6b6c Fix disappearing worldmap labels bug
The "worldmap.labels" map is keyed by namedarea.id (corresponding to map.area), while the "mapLocations" map is keyed by map.id. This causes worldmap labels to be marked for removal when there's a namedarea.id that does not match any map.id, which happens to be true for all namedareas except crossglen and crossroads.

This logic is unnecessary anyway, because WorldMapView.pushToModel is only invoked by WorldmapSegment.pushToModel, which only triggers when maps are added or moved, but not deleted. Deletions are instead handled by WorldmapSegment.elementChanged. As such, it should never be the case that a label is removable in a pushToModel call.
2021-01-04 01:07:57 -08:00
Nathan Watson
45aff3d25b Add spore immunity skill for Fungi Panic 2020-10-11 13:49:22 -07:00
Nut
28a1d0b09e bosses 2020-10-04 22:09:43 +02:00
Gonk
b96568049f Added spritesheets 2020-08-09 20:23:22 +02:00
Gonk
e125b0339c Added the giant basilisk spritesheet. that also prevents errors during compression 2020-06-08 20:16:17 +02:00
14 changed files with 2964 additions and 2930 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jardesc> <jardesc>
<jar path="ATContentStudio/ATCS_v0.6.16.jar"/> <jar path="ATContentStudio/ATCS_v0.6.19.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/ATContentStudio/ATCS_JAR.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/ATContentStudio/ATCS_JAR.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/> <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/> <selectedProjects/>

View File

@@ -913,7 +913,8 @@ public class TMXMapReader
private class MapEntityResolver implements EntityResolver private class MapEntityResolver implements EntityResolver
{ {
public InputSource resolveEntity(String publicId, String systemId) { public InputSource resolveEntity(String publicId, String systemId) {
if (systemId.equals("http://mapeditor.org/dtd/1.0/map.dtd")) { if (systemId.equals("http://mapeditor.org/dtd/1.0/map.dtd") ||
systemId.equals("https://mapeditor.org/dtd/1.0/map.dtd")) {
return new InputSource(TMXMapReader.class.getResourceAsStream( return new InputSource(TMXMapReader.class.getResourceAsStream(
"resources/map.dtd")); "resources/map.dtd"));
} }

View File

@@ -153,7 +153,7 @@ public class TMXMapWriter
} }
private void writeMap(Map map, XMLWriter w, String wp) throws IOException { private void writeMap(Map map, XMLWriter w, String wp) throws IOException {
w.writeDocType("map", null, "http://mapeditor.org/dtd/1.0/map.dtd"); w.writeDocType("map", null, "https://mapeditor.org/dtd/1.0/map.dtd");
w.startElement("map"); w.startElement("map");
w.writeAttribute("version", "1.0"); w.writeAttribute("version", "1.0");

View File

@@ -1 +1 @@
v0.6.16 v0.6.19

View File

@@ -1,6 +1,6 @@
!include MUI2.nsh !include MUI2.nsh
!define VERSION "0.6.16" !define VERSION "0.6.19"
!define TRAINER_VERSION "0.1.5" !define TRAINER_VERSION "0.1.5"
!define JAVA_BIN "javaw" !define JAVA_BIN "javaw"
@@ -83,16 +83,16 @@ Section install
FileClose $9 FileClose $9
SetOutPath "$INSTDIR\lib\" SetOutPath "$INSTDIR\lib\"
file "jide-oss.jar" file "C:\AT\ATCS_source\lib\jide-oss.jar"
file "ui.jar" file "C:\AT\ATCS_source\lib\ui.jar"
file "AndorsTrainer_v${TRAINER_VERSION}.jar" file "C:\AT\ATCS_source\lib\AndorsTrainer_v${TRAINER_VERSION}.jar"
file "junit-4.10.jar" file "C:\AT\ATCS_source\lib\junit-4.10.jar"
file "json_simple-1.1.jar" file "C:\AT\ATCS_source\lib\json_simple-1.1.jar"
file "ATCS_v${VERSION}.jar" file "C:\AT\temp\ATCS_v0.6.19\ATCS_v${VERSION}.jar"
file "rsyntaxtextarea.jar" file "C:\AT\ATCS_source\lib\rsyntaxtextarea.jar"
file "prefuse.jar" file "C:\AT\ATCS_source\lib\prefuse.jar"
file "bsh-2.0b4.jar" file "C:\AT\ATCS_source\lib\bsh-2.0b4.jar"
file "jsoup-1.10.2.jar" file "C:\AT\ATCS_source\lib\jsoup-1.10.2.jar"
SetOutPath $INSTDIR SetOutPath $INSTDIR

View File

@@ -1,65 +1,85 @@
atcs.spritesheet.actorconditions_1.category=actorcondition atcs.spritesheet.actorconditions_1.category=actorcondition
atcs.spritesheet.actorconditions_2.category=actorcondition atcs.spritesheet.actorconditions_2.category=actorcondition
atcs.spritesheet.actorconditions_japozero.category=actorcondition atcs.spritesheet.actorconditions_japozero.category=actorcondition
atcs.spritesheet.actorconditions_omi1.category=actorcondition
atcs.spritesheet.actorconditions_omi2.category=actorcondition
atcs.spritesheet.effect_blood3.animate=true
atcs.spritesheet.effect_blood4.animate=true
atcs.spritesheet.effect_bluetentacle.animate=true
atcs.spritesheet.effect_heal2.animate=true
atcs.spritesheet.effect_miss1.animate=true
atcs.spritesheet.effect_poison1.animate=true
atcs.spritesheet.effect_tometik1.animate=true
atcs.spritesheet.effect_tometik2.animate=true
atcs.spritesheet.items_armours.category=item atcs.spritesheet.items_armours.category=item
atcs.spritesheet.items_armours_2.category=item atcs.spritesheet.items_armours_2.category=item
atcs.spritesheet.items_armours_3.category=item atcs.spritesheet.items_armours_3.category=item
atcs.spritesheet.items_weapons.category=item
atcs.spritesheet.items_weapons_2.category=item
atcs.spritesheet.items_weapons_3.category=item
atcs.spritesheet.items_jewelry.category=item
atcs.spritesheet.items_rings_1.category=item
atcs.spritesheet.items_necklaces_1.category=item
atcs.spritesheet.items_consumables.category=item
atcs.spritesheet.items_japozero.category=item
atcs.spritesheet.items_books.category=item atcs.spritesheet.items_books.category=item
atcs.spritesheet.items_consumables.category=item
atcs.spritesheet.items_consumables_omi1.category=item
atcs.spritesheet.items_feygard1.category=item
atcs.spritesheet.items_g03_package_omi1.category=item
atcs.spritesheet.items_japozero.category=item
atcs.spritesheet.items_jewelry.category=item
atcs.spritesheet.items_misc.category=item atcs.spritesheet.items_misc.category=item
atcs.spritesheet.items_misc_2.category=item atcs.spritesheet.items_misc_2.category=item
atcs.spritesheet.items_misc_3.category=item atcs.spritesheet.items_misc_3.category=item
atcs.spritesheet.items_misc_4.category=item atcs.spritesheet.items_misc_4.category=item
atcs.spritesheet.items_misc_5.category=item atcs.spritesheet.items_misc_5.category=item
atcs.spritesheet.items_misc_6.category=item atcs.spritesheet.items_misc_6.category=item
atcs.spritesheet.items_necklaces_1.category=item
atcs.spritesheet.items_omi2.category=item
atcs.spritesheet.items_reterski_1.category=item atcs.spritesheet.items_reterski_1.category=item
atcs.spritesheet.items_rijackson_1.category=item
atcs.spritesheet.items_rings_1.category=item
atcs.spritesheet.items_tometik1.category=item atcs.spritesheet.items_tometik1.category=item
atcs.spritesheet.items_tometik2.category=item atcs.spritesheet.items_tometik2.category=item
atcs.spritesheet.items_tometik3.category=item atcs.spritesheet.items_tometik3.category=item
atcs.spritesheet.items_weapons.category=item
atcs.spritesheet.items_weapons_2.category=item
atcs.spritesheet.items_weapons_3.category=item
atcs.spritesheet.monsters_armor1.category=monster atcs.spritesheet.monsters_armor1.category=monster
atcs.spritesheet.monsters_dogs.category=monster atcs.spritesheet.monsters_dogs.category=monster
atcs.spritesheet.monsters_eye1.category=monster atcs.spritesheet.monsters_eye1.category=monster
atcs.spritesheet.monsters_eye2.category=monster atcs.spritesheet.monsters_eye2.category=monster
atcs.spritesheet.monsters_eye3.category=monster atcs.spritesheet.monsters_eye3.category=monster
atcs.spritesheet.monsters_eye4.category=monster atcs.spritesheet.monsters_eye4.category=monster
atcs.spritesheet.monsters_ghost1.category=monster atcs.spritesheet.monsters_ghost1.category=monster
atcs.spritesheet.monsters_hydra1.category=monster atcs.spritesheet.monsters_gisons.category=monster
atcs.spritesheet.monsters_hydra1.sizex=64 atcs.spritesheet.monsters_guynmart.category=monster
atcs.spritesheet.monsters_hydra1.sizey=64
atcs.spritesheet.monsters_insects.category=monster atcs.spritesheet.monsters_insects.category=monster
atcs.spritesheet.monsters_karvis1.category=monster
atcs.spritesheet.monsters_karvis2.category=monster
atcs.spritesheet.monsters_ld1.category=monster
atcs.spritesheet.monsters_ld2.category=monster
atcs.spritesheet.monsters_liches.category=monster atcs.spritesheet.monsters_liches.category=monster
atcs.spritesheet.monsters_mage.category=monster atcs.spritesheet.monsters_mage.category=monster
atcs.spritesheet.monsters_mage2.category=monster atcs.spritesheet.monsters_mage2.category=monster
atcs.spritesheet.monsters_maksiu1.category=monster
atcs.spritesheet.monsters_man1.category=monster atcs.spritesheet.monsters_man1.category=monster
atcs.spritesheet.monsters_men.category=monster atcs.spritesheet.monsters_men.category=monster
atcs.spritesheet.monsters_men2.category=monster atcs.spritesheet.monsters_men2.category=monster
atcs.spritesheet.monsters_misc.category=monster atcs.spritesheet.monsters_misc.category=monster
atcs.spritesheet.monsters_omi1.category=monster
atcs.spritesheet.monsters_omi1_b.category=monster
atcs.spritesheet.monsters_omi2.category=monster
atcs.spritesheet.monsters_rats.category=monster atcs.spritesheet.monsters_rats.category=monster
atcs.spritesheet.monsters_rogue1.category=monster atcs.spritesheet.monsters_redshrike1.category=monster
atcs.spritesheet.monsters_skeleton1.category=monster
atcs.spritesheet.monsters_skeleton2.category=monster
atcs.spritesheet.monsters_snakes.category=monster
atcs.spritesheet.monsters_warrior1.category=monster
atcs.spritesheet.monsters_wraiths.category=monster
atcs.spritesheet.monsters_zombie1.category=monster
atcs.spritesheet.monsters_zombie2.category=monster
atcs.spritesheet.monsters_karvis1.category=monster
atcs.spritesheet.monsters_karvis2.category=monster
atcs.spritesheet.monsters_rltiles1.category=monster atcs.spritesheet.monsters_rltiles1.category=monster
atcs.spritesheet.monsters_rltiles2.category=monster atcs.spritesheet.monsters_rltiles2.category=monster
atcs.spritesheet.monsters_rltiles3.category=monster atcs.spritesheet.monsters_rltiles3.category=monster
atcs.spritesheet.monsters_rltiles4.category=monster atcs.spritesheet.monsters_rltiles4.category=monster
atcs.spritesheet.monsters_redshrike1.category=monster atcs.spritesheet.monsters_rogue1.category=monster
atcs.spritesheet.monsters_ld1.category=monster atcs.spritesheet.monsters_skeleton1.category=monster
atcs.spritesheet.monsters_ld2.category=monster atcs.spritesheet.monsters_skeleton2.category=monster
atcs.spritesheet.monsters_snakes.category=monster
atcs.spritesheet.monsters_tometik1.category=monster atcs.spritesheet.monsters_tometik1.category=monster
atcs.spritesheet.monsters_tometik10.category=monster
atcs.spritesheet.monsters_tometik2.category=monster atcs.spritesheet.monsters_tometik2.category=monster
atcs.spritesheet.monsters_tometik3.category=monster atcs.spritesheet.monsters_tometik3.category=monster
atcs.spritesheet.monsters_tometik4.category=monster atcs.spritesheet.monsters_tometik4.category=monster
@@ -68,21 +88,27 @@ atcs.spritesheet.monsters_tometik6.category=monster
atcs.spritesheet.monsters_tometik7.category=monster atcs.spritesheet.monsters_tometik7.category=monster
atcs.spritesheet.monsters_tometik8.category=monster atcs.spritesheet.monsters_tometik8.category=monster
atcs.spritesheet.monsters_tometik9.category=monster atcs.spritesheet.monsters_tometik9.category=monster
atcs.spritesheet.monsters_tometik10.category=monster atcs.spritesheet.monsters_warrior1.category=monster
atcs.spritesheet.monsters_unknown.category=monster
atcs.spritesheet.monsters_wraiths.category=monster
atcs.spritesheet.monsters_zombie1.category=monster
atcs.spritesheet.monsters_zombie2.category=monster
atcs.spritesheet.monsters_bosses_2x2.category=monster
atcs.spritesheet.monsters_bosses_2x2.sizex=64
atcs.spritesheet.monsters_bosses_2x2.sizey=64
atcs.spritesheet.monsters_cyclops.category=monster
atcs.spritesheet.monsters_cyclops.sizex=64
atcs.spritesheet.monsters_cyclops.sizey=96
atcs.spritesheet.monsters_demon1.category=monster atcs.spritesheet.monsters_demon1.category=monster
atcs.spritesheet.monsters_demon1.sizex=64 atcs.spritesheet.monsters_demon1.sizex=64
atcs.spritesheet.monsters_demon1.sizey=64 atcs.spritesheet.monsters_demon1.sizey=64
atcs.spritesheet.monsters_demon2.category=monster atcs.spritesheet.monsters_demon2.category=monster
atcs.spritesheet.monsters_demon2.sizex=64 atcs.spritesheet.monsters_demon2.sizex=64
atcs.spritesheet.monsters_demon2.sizey=64 atcs.spritesheet.monsters_demon2.sizey=64
atcs.spritesheet.monsters_cyclops.category=monster atcs.spritesheet.monsters_giantbasilisk.category=monster
atcs.spritesheet.monsters_cyclops.sizex=64 atcs.spritesheet.monsters_giantbasilisk.sizex=64
atcs.spritesheet.monsters_cyclops.sizey=96 atcs.spritesheet.monsters_giantbasilisk.sizey=64
atcs.spritesheet.effect_blood3.animate=true atcs.spritesheet.monsters_hydra1.category=monster
atcs.spritesheet.effect_blood4.animate=true atcs.spritesheet.monsters_hydra1.sizex=64
atcs.spritesheet.effect_bluetentacle.animate=true atcs.spritesheet.monsters_hydra1.sizey=64
atcs.spritesheet.effect_heal2.animate=true
atcs.spritesheet.effect_poison1.animate=true
atcs.spritesheet.effect_tometik1.animate=true
atcs.spritesheet.effect_tometik2.animate=true
atcs.spritesheet.monsters_guynmart.category=monster

View File

@@ -43,7 +43,7 @@ import com.gpl.rpg.atcontentstudio.ui.WorkspaceSelector;
public class ATContentStudio { public class ATContentStudio {
public static final String APP_NAME = "Andor's Trail Content Studio"; public static final String APP_NAME = "Andor's Trail Content Studio";
public static final String APP_VERSION = "v0.6.16"; public static final String APP_VERSION = "v0.6.19";
public static final String CHECK_UPDATE_URL = "https://andorstrail.com/static/ATCS_latest"; public static final String CHECK_UPDATE_URL = "https://andorstrail.com/static/ATCS_latest";
public static final String DOWNLOAD_URL = "https://andorstrail.com/viewtopic.php?f=6&t=4806"; public static final String DOWNLOAD_URL = "https://andorstrail.com/viewtopic.php?f=6&t=4806";

View File

@@ -38,11 +38,16 @@ public abstract class JSONElement extends GameDataElement {
for (Object obj : gameDataElements) { for (Object obj : gameDataElements) {
Map jsonObj = (Map)obj; Map jsonObj = (Map)obj;
String id = (String) jsonObj.get("id"); String id = (String) jsonObj.get("id");
try {
if (id != null && id.equals(this.id )) { if (id != null && id.equals(this.id )) {
this.parse(jsonObj); this.parse(jsonObj);
this.state = State.parsed; this.state = State.parsed;
break; break;
} }
}
catch(Exception e){
System.out.println("Error in ID: " + id);
}
} }
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
Notification.addError("Error while parsing JSON file "+jsonFile.getAbsolutePath()+": "+e.getMessage()); Notification.addError("Error while parsing JSON file "+jsonFile.getAbsolutePath()+": "+e.getMessage());
@@ -53,6 +58,10 @@ public abstract class JSONElement extends GameDataElement {
} catch (ParseException e) { } catch (ParseException e) {
Notification.addError("Error while parsing JSON file "+jsonFile.getAbsolutePath()+": "+e.getMessage()); Notification.addError("Error while parsing JSON file "+jsonFile.getAbsolutePath()+": "+e.getMessage());
e.printStackTrace(); e.printStackTrace();
} catch (IllegalArgumentException e) {
System.out.println(id);
Notification.addError("Error while parsing JSON file "+jsonFile.getAbsolutePath()+": "+e.getMessage());
e.printStackTrace();
} finally { } finally {
if (reader != null) if (reader != null)
try { try {

View File

@@ -85,6 +85,7 @@ public class Requirement extends JSONElement {
,resistancePhysical // lowers chance to get negative active conditions by monsters (Physical Capacity like Minor fatigue) ,resistancePhysical // lowers chance to get negative active conditions by monsters (Physical Capacity like Minor fatigue)
,resistanceBlood // lowers chance to get negative active conditions by monsters (Blood Disorder like Weak Poison) ,resistanceBlood // lowers chance to get negative active conditions by monsters (Blood Disorder like Weak Poison)
,shadowBless ,shadowBless
,sporeImmunity
,crit1 // lowers atk ability ,crit1 // lowers atk ability
,crit2 // lowers def ability ,rejuvenation // Reduces magnitudes of conditions ,crit2 // lowers def ability ,rejuvenation // Reduces magnitudes of conditions
,rejuvenation // Reduces magnitudes of conditions ,rejuvenation // Reduces magnitudes of conditions

View File

@@ -95,7 +95,9 @@ public class ReplaceArea extends MapObject {
if (oldSchoolRequirement && Requirement.RequirementType.questProgress.equals(requirement.type) && (requirement.negated == null || !requirement.negated)) { if (oldSchoolRequirement && Requirement.RequirementType.questProgress.equals(requirement.type) && (requirement.negated == null || !requirement.negated)) {
tmxObject.setName(requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value))); tmxObject.setName(requirement.required_obj_id+":"+((requirement.required_value == null) ? "" : Integer.toString(requirement.required_value)));
} else { } else {
tmxObject.getProperties().setProperty("requireType", requirement.type.toString()); if (requirement.type != null) {
tmxObject.getProperties().setProperty("requireType", requirement.type.toString());
}
if (requirement.required_obj != null) { if (requirement.required_obj != null) {
tmxObject.getProperties().setProperty("requireId", requirement.required_obj.id); tmxObject.getProperties().setProperty("requireId", requirement.required_obj.id);
} else if (requirement.required_obj_id != null) { } else if (requirement.required_obj_id != null) {

View File

@@ -11,7 +11,7 @@ import com.gpl.rpg.atcontentstudio.ui.DefaultIcons;
public class SpawnArea extends MapObject { public class SpawnArea extends MapObject {
public int quantity = 1; public int quantity = 1;
public int spawnchance = 10; public int respawnSpeed = 10;
public boolean active = true; public boolean active = true;
public boolean ignoreAreas = false; public boolean ignoreAreas = false;
public String spawngroup_id; public String spawngroup_id;
@@ -21,8 +21,8 @@ public class SpawnArea extends MapObject {
if (obj.getProperties().getProperty("quantity") != null) { if (obj.getProperties().getProperty("quantity") != null) {
this.quantity = Integer.parseInt(obj.getProperties().getProperty("quantity")); this.quantity = Integer.parseInt(obj.getProperties().getProperty("quantity"));
} }
if (obj.getProperties().getProperty("spawnchance") != null) { if (obj.getProperties().getProperty("respawnspeed") != null) {
this.spawnchance = Integer.parseInt(obj.getProperties().getProperty("spawnchance")); this.respawnSpeed = Integer.parseInt(obj.getProperties().getProperty("respawnspeed"));
} }
if (obj.getProperties().getProperty("active") != null) { if (obj.getProperties().getProperty("active") != null) {
this.active = Boolean.parseBoolean(obj.getProperties().getProperty("active")); this.active = Boolean.parseBoolean(obj.getProperties().getProperty("active"));
@@ -82,8 +82,8 @@ public class SpawnArea extends MapObject {
if (quantity != 1) { if (quantity != 1) {
tmxObject.getProperties().setProperty("quantity", Integer.toString(quantity)); tmxObject.getProperties().setProperty("quantity", Integer.toString(quantity));
} }
if (spawnchance != 10) { if (respawnSpeed != 10) {
tmxObject.getProperties().setProperty("spawnchance", Integer.toString(spawnchance)); tmxObject.getProperties().setProperty("respawnspeed", Integer.toString(respawnSpeed));
} }
if (!this.active) { if (!this.active) {
tmxObject.getProperties().setProperty("active", Boolean.toString(active)); tmxObject.getProperties().setProperty("active", Boolean.toString(active));
@@ -92,5 +92,4 @@ public class SpawnArea extends MapObject {
tmxObject.getProperties().setProperty("ignoreAreas", Boolean.toString(ignoreAreas)); tmxObject.getProperties().setProperty("ignoreAreas", Boolean.toString(ignoreAreas));
} }
} }
} }

View File

@@ -37,17 +37,17 @@ public class AboutEditor extends Editor {
"<b>Right click on the left area or use the \"File\" menu to create a project.</b><br/>" + "<b>Right click on the left area or use the \"File\" menu to create a project.</b><br/>" +
"<br/>" + "<br/>" +
"Play <a href=\"https://play.google.com/store/apps/details?id=com.gpl.rpg.AndorsTrail\">Andor's Trail</a> for free on your Android device.<br/>" + "Play <a href=\"https://play.google.com/store/apps/details?id=com.gpl.rpg.AndorsTrail\">Andor's Trail</a> for free on your Android device.<br/>" +
"Visit <a href=\"http://andorstrail.com/\">the official forum</a> to give or receive help.<br/>" + "Visit <a href=\"https://andorstrail.com/\">the official forum</a> to give or receive help.<br/>" +
"Open the project's <a href=\"https://github.com/Zukero/andors-trail/\">GitHub project page</a> to check out the game's source code.<br/>" + "Open the project's <a href=\"https://github.com/Zukero/andors-trail/\">GitHub project page</a> to check out the game's source code.<br/>" +
"<br/>" + "<br/>" +
"For content creation help, make sure to use the following resources:<br/>" + "For content creation help, make sure to use the following resources:<br/>" +
"<a href=\"http://andorstrail.com/viewtopic.php?f=6&t=4560\">The contribution guide on the forums</a><br/>" + "<a href=\"https://andorstrail.com/viewtopic.php?f=6&t=4560\">The contribution guide on the forums</a><br/>" +
"<a href=\"http://andorstrail.com/wiki/doku.php?id=andors_trail_wiki:developer_section\">The developer section of the Andor's Trail wiki</a><br/>" + "<a href=\"https://andorstrail.com/wiki/doku.php?id=andors_trail_wiki:developer_section\">The developer section of the Andor's Trail wiki</a><br/>" +
"<a href=\"https://docs.google.com/document/d/1BwWD1tLgPcmA2bwudrVnOc6f2dkPLFCjWdn7tXlIp5g\">The design outline document on Google Drive/Docs</a><br/>" + "<a href=\"https://docs.google.com/document/d/1BwWD1tLgPcmA2bwudrVnOc6f2dkPLFCjWdn7tXlIp5g\">The design outline document on Google Drive/Docs</a><br/>" +
"<br/>" + "<br/>" +
"<font size=+1>Credits:</font><br/>" + "<font size=+1>Credits:</font><br/>" +
"<br/>" + "<br/>" +
"Author: <a href=\"http://andorstrail.com/memberlist.php?mode=viewprofile&u=2875\">Zukero</a><br/>" + "Author: <a href=\"https://andorstrail.com/memberlist.php?mode=viewprofile&u=2875\">Zukero</a><br/>" +
"Licence: <a href=\"http://www.gnu.org/licenses/gpl-3.0.html\">GPL v3</a><br/>" + "Licence: <a href=\"http://www.gnu.org/licenses/gpl-3.0.html\">GPL v3</a><br/>" +
"Sources are included in this package and on <a href=\"https://github.com/Zukero/ATCS\">GitHub</a>.<br/>" + "Sources are included in this package and on <a href=\"https://github.com/Zukero/ATCS\">GitHub</a>.<br/>" +
"<br/>" + "<br/>" +

View File

@@ -161,6 +161,7 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
private JComboBox evaluateTriggerBox; private JComboBox evaluateTriggerBox;
private JSpinner quantityField; private JSpinner quantityField;
private JSpinner respawnSpeedField;
private JCheckBox spawnActiveForNewGame; private JCheckBox spawnActiveForNewGame;
private JCheckBox spawnIgnoreAreas; private JCheckBox spawnIgnoreAreas;
private JTextField spawngroupField; private JTextField spawngroupField;
@@ -629,6 +630,7 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
areaField = addTextField(pane, "Spawn area ID: ", ((SpawnArea)selected).name, ((TMXMap)target).writable, listener); areaField = addTextField(pane, "Spawn area ID: ", ((SpawnArea)selected).name, ((TMXMap)target).writable, listener);
spawngroupField = addTextField(pane, "Spawn group ID: ", ((SpawnArea)selected).spawngroup_id, ((TMXMap)target).writable, listener); spawngroupField = addTextField(pane, "Spawn group ID: ", ((SpawnArea)selected).spawngroup_id, ((TMXMap)target).writable, listener);
quantityField = addIntegerField(pane, "Number of spawned NPCs: ", ((SpawnArea)selected).quantity, false, ((TMXMap)target).writable, listener); quantityField = addIntegerField(pane, "Number of spawned NPCs: ", ((SpawnArea)selected).quantity, false, ((TMXMap)target).writable, listener);
respawnSpeedField = addIntegerField(pane, "Respawn-Speed of NPCs: ", ((SpawnArea)selected).respawnSpeed, false, ((TMXMap)target).writable, listener);
spawnActiveForNewGame = addBooleanBasedCheckBox(pane, "Active in a new game: ", ((SpawnArea)selected).active, ((TMXMap)target).writable, listener); spawnActiveForNewGame = addBooleanBasedCheckBox(pane, "Active in a new game: ", ((SpawnArea)selected).active, ((TMXMap)target).writable, listener);
spawnIgnoreAreas = addBooleanBasedCheckBox(pane, "Monsters can walk on other game objects: ", ((SpawnArea)selected).ignoreAreas, ((TMXMap)target).writable, listener); spawnIgnoreAreas = addBooleanBasedCheckBox(pane, "Monsters can walk on other game objects: ", ((SpawnArea)selected).ignoreAreas, ((TMXMap)target).writable, listener);
npcListModel = new SpawnGroupNpcListModel((SpawnArea) selected); npcListModel = new SpawnGroupNpcListModel((SpawnArea) selected);
@@ -2049,6 +2051,10 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
SpawnArea area = (SpawnArea) selectedMapObject; SpawnArea area = (SpawnArea) selectedMapObject;
area.quantity = (Integer) value; area.quantity = (Integer) value;
} }
} else if (source == respawnSpeedField) {
if (selectedMapObject instanceof SpawnArea area) {
area.respawnSpeed = (Integer) value;
}
} else if (source == spawnActiveForNewGame) { } else if (source == spawnActiveForNewGame) {
if (selectedMapObject instanceof SpawnArea) { if (selectedMapObject instanceof SpawnArea) {
SpawnArea area = (SpawnArea) selectedMapObject; SpawnArea area = (SpawnArea) selectedMapObject;

View File

@@ -521,16 +521,6 @@ public class WorldMapView extends JComponent implements Scrollable {
} }
worldmap.getProject().getMap(id).addBacklink(worldmap); worldmap.getProject().getMap(id).addBacklink(worldmap);
} }
List<String> toRemove = new ArrayList<String>();
for (String s : worldmap.labels.keySet()) {
if (!mapLocations.containsKey(s)) {
toRemove.add(s);
}
}
for (String s : toRemove) {
worldmap.labels.remove(s);
}
} }
} }