Letter Collector event adjustments.
Thanks to Sero.
This commit is contained in:
@@ -88,26 +88,26 @@ public class LetterCollector extends LongTimeEvent implements IXmlReader
|
||||
forEach(listNode, "reward", rewardNode ->
|
||||
{
|
||||
final int id = new StatSet(parseAttributes(rewardNode)).getInt("id");
|
||||
final AtomicReference<List<ItemHolder>> word = new AtomicReference<>(new ArrayList<>());
|
||||
final AtomicReference<List<ItemChanceHolder>> rewards = new AtomicReference<>(new ArrayList<>());
|
||||
AtomicBoolean needToSumAllChance = new AtomicBoolean(false);
|
||||
AtomicReference<Double> chanceSum = new AtomicReference<>(0.0);
|
||||
final List<ItemHolder> word = new ArrayList<>();
|
||||
final List<ItemChanceHolder> rewards = new ArrayList<>();
|
||||
final AtomicBoolean needToSumAllChance = new AtomicBoolean(false);
|
||||
final AtomicReference<Double> chanceSum = new AtomicReference<>(0d);
|
||||
forEach(rewardNode, "word", wordNode ->
|
||||
{
|
||||
String[] letter = wordNode.getTextContent().trim().split(";");
|
||||
for (String token : letter)
|
||||
{
|
||||
int count = 1;
|
||||
for (ItemHolder check : word.get())
|
||||
for (ItemHolder check : word)
|
||||
{
|
||||
if (check.getId() == letters.get(token))
|
||||
{
|
||||
count = Math.toIntExact(check.getCount() + 1);
|
||||
word.get().remove(check);
|
||||
word.remove(check);
|
||||
break;
|
||||
}
|
||||
}
|
||||
word.get().add(new ItemHolder(letters.get(token), count));
|
||||
word.add(new ItemHolder(letters.get(token), count));
|
||||
}
|
||||
});
|
||||
forEach(rewardNode, "rewards", rewardsNode ->
|
||||
@@ -121,12 +121,12 @@ public class LetterCollector extends LongTimeEvent implements IXmlReader
|
||||
{
|
||||
chanceSum.set(chanceSum.get() + chance);
|
||||
}
|
||||
rewards.get().add(new ItemChanceHolder(itemSet.getInt("id"), chance, itemSet.getLong("count"), (byte) itemSet.getInt("enchantLevel", 0)));
|
||||
rewards.add(new ItemChanceHolder(itemSet.getInt("id"), chance, itemSet.getLong("count"), (byte) itemSet.getInt("enchantLevel", 0)));
|
||||
});
|
||||
});
|
||||
LetterCollectorManager lcm = LetterCollectorManager.getInstance();
|
||||
lcm.addWords(id, word.get());
|
||||
lcm.addRewards(id, new LetterCollectorManager.LetterCollectorRewardHolder(rewards.get(), chanceSum.get() == 0d ? 100d : chanceSum.get()));
|
||||
final LetterCollectorManager lcm = LetterCollectorManager.getInstance();
|
||||
lcm.addWords(id, word);
|
||||
lcm.addRewards(id, new LetterCollectorManager.LetterCollectorRewardHolder(rewards, chanceSum.get() == 0d ? 100d : chanceSum.get()));
|
||||
lcm.setLetters(letters);
|
||||
lcm.setMinLevel(minimumLevel.get());
|
||||
lcm.setMaxLevel(maximumLevel.get());
|
||||
|
@@ -1,19 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<event name="Letter Collector" active="30 06 2021-29 07 2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
|
||||
<droplist>
|
||||
<add item="3875" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's A -->
|
||||
<add item="3877" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's E -->
|
||||
<add item="3879" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's G -->
|
||||
<add item="3881" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's I -->
|
||||
<add item="3882" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's L -->
|
||||
<add item="3883" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's N -->
|
||||
<add item="3884" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's O -->
|
||||
<add item="3886" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's T -->
|
||||
<add item="3880" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's H -->
|
||||
<add item="3888" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's II -->
|
||||
<add item="22894" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's W -->
|
||||
<add item="29545" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's D -->
|
||||
<add item="29825" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's P -->
|
||||
<add item="82099" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's A -->
|
||||
<add item="82098" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's E -->
|
||||
<add item="82100" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's G -->
|
||||
<add item="82096" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's I -->
|
||||
<add item="82095" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's L -->
|
||||
<add item="82097" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's N -->
|
||||
<add item="82105" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's O -->
|
||||
<add item="82104" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's T -->
|
||||
<add item="82106" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's H -->
|
||||
<add item="82101" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's II -->
|
||||
<add item="82102" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's W -->
|
||||
<add item="82103" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's D -->
|
||||
<add item="82107" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's P -->
|
||||
<add item="80012" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter - K -->
|
||||
</droplist>
|
||||
<messages>
|
||||
<add type="onEnd" text="Letter Collector: Event end!" />
|
||||
|
@@ -6,19 +6,20 @@
|
||||
</params>
|
||||
<letters>
|
||||
<!-- name of letter, for using down / id of this letter -->
|
||||
<item name="A" id="3875" />
|
||||
<item name="E" id="3877" />
|
||||
<item name="G" id="3879" />
|
||||
<item name="I" id="3881" />
|
||||
<item name="L" id="3882" />
|
||||
<item name="N" id="3883" />
|
||||
<item name="O" id="3884" />
|
||||
<item name="T" id="3886" />
|
||||
<item name="H" id="3880" />
|
||||
<item name="II" id="3888" />
|
||||
<item name="W" id="22894" />
|
||||
<item name="D" id="29545" />
|
||||
<item name="P" id="29825" />
|
||||
<item name="A" id="82099" />
|
||||
<item name="E" id="82098" />
|
||||
<item name="G" id="82100" />
|
||||
<item name="I" id="82096" />
|
||||
<item name="L" id="82095" />
|
||||
<item name="N" id="82097" />
|
||||
<item name="O" id="82105" />
|
||||
<item name="T" id="82104" />
|
||||
<item name="H" id="82106" />
|
||||
<item name="II" id="82101" />
|
||||
<item name="W" id="82102" />
|
||||
<item name="D" id="82103" />
|
||||
<item name="P" id="82107" />
|
||||
<item name="K" id="80012" />
|
||||
</letters>
|
||||
<!-- client id -->
|
||||
<reward id="0">
|
||||
@@ -62,7 +63,7 @@
|
||||
</rewards>
|
||||
</reward>
|
||||
<reward id="1">
|
||||
<word>D;E;A;T;H</word> <!-- DEATH -->
|
||||
<word>N;E;W;L;E;G;E;N;D</word> <!-- NEW LEGEND -->
|
||||
<rewards sumChances="true">
|
||||
<item id="47821" count="1" chance="5" /> <!-- Sayha's Talisman Lv. 10 -->
|
||||
<item id="47820" count="1" chance="5" /> <!-- Sayha's Talisman Lv. 9 -->
|
||||
@@ -91,7 +92,7 @@
|
||||
</rewards>
|
||||
</reward>
|
||||
<reward id="2">
|
||||
<word>K;N;I;G;H;T</word> <!-- KNIGHT -->
|
||||
<word>T;O;T;H;E;T;O;P</word> <!-- TO THE TOP -->
|
||||
<rewards sumChances="true">
|
||||
<item id="80416" count="1" chance="5" /> <!-- Fortune Box of 10 Billion Adena -->
|
||||
<item id="28448" count="1" chance="5" /> <!-- Sayha's Talisman Lv. 7 -->
|
||||
|
Reference in New Issue
Block a user