In meinem derzeitigen Prototypen möchte ich ein klassisches Lootsystem implementieren und überlege gerade wie das am besten - hinsichtlich Wartbarkeit - zu machen ist.
Google liefert hier alle möglichen und unmöglichen Lösungsansätze, bin aber noch unschlüssig ob das das Richtige ist.
Folgende Idee:
Ausgelagerte Loottabelle im XML Format für eine möglichst hohe Felxibilität.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<LootTable id="consumable">
<Items>
<Item id="c01" name="Apple" rarity="50" value="1" />
<Item id="c02" name="Fish" rarity="20" value="3" />
</Items>
</LootTable>
<LootTable id="material">
<Items>
<Item id="m01" name="Screw" rarity="10" value="5" />
<Item id="m02" name="Gear-Wheel" rarity="10" value="25" />
</Items>
</LootTable>
|
Über eine Item-Klasse wird dieses File entsprechend eingelesen. Etwaige Container die diese Items beinhalten können (Kisten, Gegner, etc) werden bei ihrer Aktivierung (Kiste wird geöffnet, Gegner geplündert) per Zufall mit diesen Items befüllt. Durch die LootTable id könnte man z.B. Obstkisten nur mit consumables befüllen lassen.
Ein entsprechendes Spielerinventar wäre dann ebenfalls nur eine Liste von Item-IDs.
Ist das im Grunde wirklich so einfach oder übersehe ich da etwas? Wie habt ihr so etwas gelöst?