Add tests for MobSkillFactory
This commit is contained in:
12
pom.xml
12
pom.xml
@@ -28,11 +28,12 @@
|
||||
<log4j.version>2.18.0</log4j.version> <!-- Slf4j implementation -->
|
||||
<graalvm.version>22.2.0</graalvm.version> <!-- ScriptEngine implementation -->
|
||||
<netty.version>4.1.79.Final</netty.version> <!-- Networking -->
|
||||
<junit.version>5.9.0</junit.version> <!-- Unit test -->
|
||||
<yamlbeans.version>1.15</yamlbeans.version> <!-- Config file -->
|
||||
<jcip-annotations.version>1.0</jcip-annotations.version> <!-- Annotations for concurrency documentation -->
|
||||
<HikariCP.version>5.0.1</HikariCP.version> <!-- Database connection pool -->
|
||||
<mysql-connector-java.version>8.0.30</mysql-connector-java.version> <!-- MySQL JDBC driver -->
|
||||
<junit.version>5.9.0</junit.version> <!-- Unit test -->
|
||||
<mockito.version>4.7.0</mockito.version> <!-- Unit test -->
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
@@ -120,16 +121,25 @@
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-params</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>${mockito.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
70
src/test/java/server/life/MobSkillFactoryTest.java
Normal file
70
src/test/java/server/life/MobSkillFactoryTest.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package server.life;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class MobSkillFactoryTest {
|
||||
|
||||
@TempDir
|
||||
private Path wzPath;
|
||||
|
||||
@BeforeEach
|
||||
void setWzPath() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
writeTestFileToTempDir();
|
||||
System.setProperty("wz-path", "%s/wz".formatted(wzPath.toString()));
|
||||
}
|
||||
|
||||
private void writeTestFileToTempDir() {
|
||||
try {
|
||||
String testFileContents = readTestFileContents();
|
||||
writeTempDirFile(testFileContents);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private String readTestFileContents() throws IOException {
|
||||
return new String(getClass()
|
||||
.getClassLoader()
|
||||
.getResourceAsStream("MobSkill-test.img.xml")
|
||||
.readAllBytes()
|
||||
);
|
||||
}
|
||||
|
||||
private void writeTempDirFile(String fileContents) throws IOException {
|
||||
Path tempDirDirectory = wzPath.resolve("wz/Skill.wz");
|
||||
Files.createDirectories(tempDirDirectory);
|
||||
Path tempDirFile = Files.createFile(tempDirDirectory.resolve("MobSkill.img.xml"));
|
||||
Files.writeString(tempDirFile, fileContents);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldLoadExistingMobSkill() {
|
||||
MobSkill mobSkill = MobSkillFactory.getMobSkill(MobSkillType.ATTACK_UP, 1);
|
||||
|
||||
assertNotNull(mobSkill);
|
||||
assertAll("MobSkill",
|
||||
() -> assertEquals(115, mobSkill.getX()),
|
||||
() -> assertEquals(5, mobSkill.getMpCon()),
|
||||
() -> assertEquals(40_000, mobSkill.getCoolTime()),
|
||||
() -> assertEquals(30_000, mobSkill.getDuration())
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnNullForNonExistingMobSkill() {
|
||||
MobSkill mobSkill = MobSkillFactory.getMobSkill(MobSkillType.DEFENSE_UP, 1);
|
||||
|
||||
assertNull(mobSkill);
|
||||
}
|
||||
|
||||
}
|
||||
522
src/test/resources/MobSkill-test.img.xml
Normal file
522
src/test/resources/MobSkill-test.img.xml
Normal file
@@ -0,0 +1,522 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<imgdir name="MobSkill.img">
|
||||
<imgdir name="100">
|
||||
<imgdir name="level">
|
||||
<imgdir name="1">
|
||||
<int name="x" value="115"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="40"/>
|
||||
<int name="time" value="30"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="128" height="128">
|
||||
<vector name="origin" x="62" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="128" height="127">
|
||||
<vector name="origin" x="61" y="64"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="131" height="130">
|
||||
<vector name="origin" x="65" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="141" height="140">
|
||||
<vector name="origin" x="68" y="70"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="123" height="123">
|
||||
<vector name="origin" x="58" y="62"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="126" height="122">
|
||||
<vector name="origin" x="63" y="63"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="6" width="111" height="112">
|
||||
<vector name="origin" x="54" y="57"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="7" width="24" height="23">
|
||||
<vector name="origin" x="9" y="15"/>
|
||||
<int name="delay" value="100"/>
|
||||
<int name="a0" value="255"/>
|
||||
<int name="a1" value="0"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="2">
|
||||
<int name="x" value="130"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="40"/>
|
||||
<int name="time" value="30"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="128" height="128">
|
||||
<vector name="origin" x="62" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="128" height="127">
|
||||
<vector name="origin" x="61" y="64"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="131" height="130">
|
||||
<vector name="origin" x="65" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="141" height="140">
|
||||
<vector name="origin" x="68" y="70"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="123" height="123">
|
||||
<vector name="origin" x="58" y="62"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="126" height="122">
|
||||
<vector name="origin" x="63" y="63"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="6" width="111" height="112">
|
||||
<vector name="origin" x="54" y="57"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="7" width="24" height="23">
|
||||
<vector name="origin" x="9" y="15"/>
|
||||
<int name="delay" value="100"/>
|
||||
<int name="a0" value="255"/>
|
||||
<int name="a1" value="0"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="3">
|
||||
<int name="x" value="130"/>
|
||||
<int name="hp" value="50"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="40"/>
|
||||
<int name="time" value="30"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="128" height="128">
|
||||
<vector name="origin" x="62" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="128" height="127">
|
||||
<vector name="origin" x="61" y="64"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="131" height="130">
|
||||
<vector name="origin" x="65" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="141" height="140">
|
||||
<vector name="origin" x="68" y="70"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="123" height="123">
|
||||
<vector name="origin" x="58" y="62"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="126" height="122">
|
||||
<vector name="origin" x="63" y="63"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="6" width="111" height="112">
|
||||
<vector name="origin" x="54" y="57"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="7" width="24" height="23">
|
||||
<vector name="origin" x="9" y="15"/>
|
||||
<int name="delay" value="100"/>
|
||||
<int name="a0" value="255"/>
|
||||
<int name="a1" value="0"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="4">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="30"/>
|
||||
<int name="time" value="60"/>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="84" height="74">
|
||||
<vector name="origin" x="42" y="37"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="84" height="75">
|
||||
<vector name="origin" x="43" y="36"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="84" height="75">
|
||||
<vector name="origin" x="43" y="36"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="85" height="75">
|
||||
<vector name="origin" x="44" y="35"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="84" height="74">
|
||||
<vector name="origin" x="42" y="37"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="85" height="73">
|
||||
<vector name="origin" x="43" y="38"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="repeat" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="5">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="30"/>
|
||||
<int name="time" value="60"/>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="84" height="74">
|
||||
<vector name="origin" x="42" y="37"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="84" height="75">
|
||||
<vector name="origin" x="43" y="36"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="84" height="75">
|
||||
<vector name="origin" x="43" y="36"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="85" height="75">
|
||||
<vector name="origin" x="44" y="35"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="84" height="74">
|
||||
<vector name="origin" x="42" y="37"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="85" height="73">
|
||||
<vector name="origin" x="43" y="38"/>
|
||||
<int name="delay" value="120"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="repeat" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="6">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="1"/>
|
||||
<int name="interval" value="5"/>
|
||||
<int name="time" value="1"/>
|
||||
</imgdir>
|
||||
<imgdir name="7">
|
||||
<int name="x" value="1"/>
|
||||
<int name="mpCon" value="1"/>
|
||||
<int name="interval" value="8"/>
|
||||
<int name="time" value="1"/>
|
||||
</imgdir>
|
||||
<imgdir name="8">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="1"/>
|
||||
<int name="interval" value="90"/>
|
||||
<int name="time" value="10"/>
|
||||
</imgdir>
|
||||
<imgdir name="9">
|
||||
<int name="x" value="110"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="10">
|
||||
<int name="x" value="120"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="11">
|
||||
<int name="x" value="130"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="12">
|
||||
<int name="x" value="140"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="13">
|
||||
<int name="x" value="150"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="14">
|
||||
<int name="x" value="160"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="15">
|
||||
<int name="x" value="170"/>
|
||||
<int name="time" value="6000"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="16">
|
||||
<int name="x" value="170"/>
|
||||
<int name="time" value="15"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="17">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="1"/>
|
||||
<int name="interval" value="15"/>
|
||||
<int name="time" value="1"/>
|
||||
</imgdir>
|
||||
<imgdir name="18">
|
||||
<int name="x" value="100"/>
|
||||
<int name="mpCon" value="1"/>
|
||||
<int name="interval" value="5"/>
|
||||
<int name="time" value="1"/>
|
||||
</imgdir>
|
||||
<imgdir name="19">
|
||||
<int name="x" value="170"/>
|
||||
<int name="time" value="15"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="20">
|
||||
<int name="x" value="115"/>
|
||||
<int name="mpCon" value="5"/>
|
||||
<int name="interval" value="40"/>
|
||||
<int name="time" value="30"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="128" height="128">
|
||||
<vector name="origin" x="62" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="1" width="128" height="127">
|
||||
<vector name="origin" x="61" y="64"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="2" width="131" height="130">
|
||||
<vector name="origin" x="65" y="65"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="3" width="141" height="140">
|
||||
<vector name="origin" x="68" y="70"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="4" width="123" height="123">
|
||||
<vector name="origin" x="58" y="62"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="5" width="126" height="122">
|
||||
<vector name="origin" x="63" y="63"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="6" width="111" height="112">
|
||||
<vector name="origin" x="54" y="57"/>
|
||||
<int name="delay" value="100"/>
|
||||
</canvas>
|
||||
<canvas name="7" width="24" height="23">
|
||||
<vector name="origin" x="9" y="15"/>
|
||||
<int name="delay" value="100"/>
|
||||
<int name="a0" value="255"/>
|
||||
<int name="a1" value="0"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="49" height="54">
|
||||
<vector name="origin" x="22" y="72"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="21">
|
||||
<string name="info" value="넥스1/넥스2"/>
|
||||
<int name="x" value="120"/>
|
||||
<int name="time" value="15"/>
|
||||
<int name="mpCon" value="20"/>
|
||||
<int name="interval" value="30"/>
|
||||
<int name="hp" value="70"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="22">
|
||||
<string name="info" value="넥스3/넥스4"/>
|
||||
<int name="x" value="140"/>
|
||||
<int name="time" value="15"/>
|
||||
<int name="mpCon" value="20"/>
|
||||
<int name="interval" value="30"/>
|
||||
<int name="hp" value="70"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
<imgdir name="23">
|
||||
<string name="info" value="넥스5/넥스6"/>
|
||||
<int name="x" value="160"/>
|
||||
<int name="time" value="15"/>
|
||||
<int name="mpCon" value="20"/>
|
||||
<int name="interval" value="30"/>
|
||||
<int name="hp" value="70"/>
|
||||
<imgdir name="effect">
|
||||
<canvas name="0" width="10" height="10">
|
||||
<vector name="origin" x="-2" y="32"/>
|
||||
</canvas>
|
||||
<int name="pos" value="3"/>
|
||||
</imgdir>
|
||||
<imgdir name="mob">
|
||||
<canvas name="0" width="19" height="23">
|
||||
<vector name="origin" x="9" y="44"/>
|
||||
</canvas>
|
||||
<int name="pos" value="2"/>
|
||||
<int name="icon" value="1"/>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
</imgdir>
|
||||
Reference in New Issue
Block a user