diff --git a/ENGLISH.md b/ENGLISH.md index 20f1401..2235cde 100644 --- a/ENGLISH.md +++ b/ENGLISH.md @@ -9,7 +9,7 @@
- + ⭐️ Please press the star! It greatly helps development! ⭐️
@@ -114,6 +114,9 @@ _New contributions may take up to 1 hour to be reflected._ | name | ratio | Description | |------------------------------------------------------------------------------------------------------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| QUOKKA
| 0.3 | | +| QUOKKA_LEAF
| 0.1 | | +| QUOKKA_SUNGLASSES
| 0.05 | | | FISH_MAN
| 0.001 | | | FISH_MAN_GLASSES
| 0.001 | | | flamingo
| 0.08 | | diff --git a/README.md b/README.md index a2b99cd..07ff9c7 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@
- + ⭐스타를 눌러주세요 개발에 큰 도움이 됩니다!⭐️
@@ -109,6 +109,9 @@ _새로운 contribution은 반영은 최대 1시간이 소요될 수 있어요._ | name | ratio | Description | |------------------------------------------------------------------------------------------------------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| QUOKKA
| 0.3 | | +| QUOKKA_LEAF
| 0.1 | | +| QUOKKA_SUNGLASSES
| 0.05 | | | FISH_MAN
| 0.001 | | | FISH_MAN_GLASSES
| 0.001 | | | flamingo
| 0.08 | | diff --git a/docs/quokka-leaf.svg b/docs/quokka-leaf.svg new file mode 100644 index 0000000..0cfe851 --- /dev/null +++ b/docs/quokka-leaf.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/quokka-sunglasses.svg b/docs/quokka-sunglasses.svg new file mode 100644 index 0000000..c6a44f9 --- /dev/null +++ b/docs/quokka-sunglasses.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/quokka.svg b/docs/quokka.svg new file mode 100644 index 0000000..0bdc9b7 --- /dev/null +++ b/docs/quokka.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt b/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt index 9f1c7d6..fc2155a 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt @@ -1010,7 +1010,52 @@ enum class PersonaType(private val weight: Double) { override fun act(id: Long): String = StringBuilder().moveRandomly("fishman", id, 15, "180s", 5, 16.5) .toString() - } + }, + QUOKKA(0.3) { + override fun loadSvg(user: User, persona: Persona, mode: Mode): String { + return quokkaSvg.replace("*{act}", act(persona.id)) + .replace("*{id}", persona.id.toString()) + .replace("*{level}", persona.level.value.toSvg(14.0, 2.0)) + .replace( + "*{levelx}", + (-9 + (-1 * (persona.level.value.toString().length))).toString() + ) + } + + override fun act(id: Long): String = + StringBuilder().moveRandomly("quokka", id, 40, "180s", 5, 10.0) + .toString() + }, + QUOKKA_LEAF(0.1) { + override fun loadSvg(user: User, persona: Persona, mode: Mode): String { + return quokkaLeafSvg.replace("*{act}", act(persona.id)) + .replace("*{id}", persona.id.toString()) + .replace("*{level}", persona.level.value.toSvg(14.0, 2.0)) + .replace( + "*{levelx}", + (-9 + (-1 * (persona.level.value.toString().length))).toString() + ) + } + + override fun act(id: Long): String = + StringBuilder().moveRandomly("quokka", id, 40, "180s", 5, 10.0) + .toString() + }, + QUOKKA_SUNGLASSES(0.05) { + override fun loadSvg(user: User, persona: Persona, mode: Mode): String { + return quokkaSunglassesSvg.replace("*{act}", act(persona.id)) + .replace("*{id}", persona.id.toString()) + .replace("*{level}", persona.level.value.toSvg(14.0, 2.0)) + .replace( + "*{levelx}", + (-9 + (-1 * (persona.level.value.toString().length))).toString() + ) + } + + override fun act(id: Long): String = + StringBuilder().moveRandomly("quokka", id, 40, "180s", 5, 10.0) + .toString() + }, ; init { @@ -1082,7 +1127,7 @@ enum class PersonaType(private val weight: Double) { speed: Int, duration: String, personaWidth: Long, - flippedWidth: Double, + flippedWidth: Double, // flippedWidth = persona width * 3 / 2 ): StringBuilder { val movingPoints = getMovingPoints(speed) diff --git a/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt b/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt index 3884ade..fec10ae 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt @@ -178,6 +178,16 @@ val fishManSvg: String = ClassPathResource("persona/animal/fishman.svg") val fishManGlassesSvg: String = ClassPathResource("persona/animal/fishman-glasses.svg") .getContentAsString(Charset.defaultCharset()) +val quokkaSvg: String = ClassPathResource("persona/animal/quokka.svg") + .getContentAsString(Charset.defaultCharset()) + +val quokkaLeafSvg: String = ClassPathResource("persona/animal/quokka-leaf.svg") + .getContentAsString(Charset.defaultCharset()) + +val quokkaSunglassesSvg: String = ClassPathResource("persona/animal/quokka-sunglasses.svg") + .getContentAsString(Charset.defaultCharset()) + + val largeTextSvgs = lazy { val map = mutableMapOf() for (i in 'A'..'Z') { diff --git a/src/main/resources/persona/animal/quokka-leaf.svg b/src/main/resources/persona/animal/quokka-leaf.svg new file mode 100644 index 0000000..b7cd672 --- /dev/null +++ b/src/main/resources/persona/animal/quokka-leaf.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + *{contribution} + + + + + + + + + + + + + + + + + + + + *{level} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/persona/animal/quokka-sunglasses.svg b/src/main/resources/persona/animal/quokka-sunglasses.svg new file mode 100644 index 0000000..a2fe10a --- /dev/null +++ b/src/main/resources/persona/animal/quokka-sunglasses.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + *{contribution} + + + + + + + + + + + + + + + + + + + + *{level} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/persona/animal/quokka.svg b/src/main/resources/persona/animal/quokka.svg new file mode 100644 index 0000000..e59d10a --- /dev/null +++ b/src/main/resources/persona/animal/quokka.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + *{contribution} + + + + + + + + + + + + + + + + + + + + *{level} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/persona/goose/test.svg b/src/test/resources/persona/goose/test.svg index 54046b8..6924b02 100644 --- a/src/test/resources/persona/goose/test.svg +++ b/src/test/resources/persona/goose/test.svg @@ -1,330 +1,154 @@ - - + + + + + + + + + + + + + + + *{contribution} + - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + *{level} + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +