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 -->
 | 
			
		||||
 
 | 
			
		||||
@@ -1156,6 +1156,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82096" name="Letter I" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -1167,6 +1168,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82097" name="Letter N" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -1178,6 +1180,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82098" name="Letter E" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -1189,6 +1192,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82099" name="Letter A" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -1200,5 +1204,6 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
</list>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82101" name="Number II" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -21,6 +22,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82102" name="Letter W" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -32,6 +34,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82103" name="Letter D" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -43,6 +46,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82104" name="Letter T" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -54,6 +58,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82105" name="Letter O" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -65,6 +70,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82106" name="Letter H" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -76,6 +82,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82107" name="Letter P" additionalName="Event" type="EtcItem">
 | 
			
		||||
		<!-- A letter that can be obtained while hunting monsters on the continent. If you collect a word from such letters, you'll be able to participate in the event and get useful items. -->
 | 
			
		||||
@@ -87,6 +94,7 @@
 | 
			
		||||
		<set name="is_tradable" val="false" />
 | 
			
		||||
		<set name="is_dropable" val="false" />
 | 
			
		||||
		<set name="is_sellable" val="false" />
 | 
			
		||||
		<set name="is_stackable" val="true" />
 | 
			
		||||
	</item>
 | 
			
		||||
	<item id="82108" name="Conquest Leader" additionalName="30-day" type="Armor">
 | 
			
		||||
		<!-- Given only to the Conquest Leader. When equipped, Max HP/ MP/ CP +5%, weight limit +25,600, damage +15%, received damage -15%, Damage Reflection Resistance +20%, Fixed Damage Resistance +20%, Critical Damage -20%, inventory slots +36, Attribute Resistance +50. -->
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user