- POST HOST/users --header "Content-Type: application/json" -d "{"Username":"user", "Password":"pwd"}"
Mit dieser Funktion & Payload kann man sich einloggen um einen Token für die weiteren Funktionen zu bekommen. - POST HOST/logout --header "Authorization: 123456"
Mit dieser Funktion kann man einen User aus der Online Liste löschen. - GET HOST/transaction/packages --header "Authorization: 123456"
Mit dieser Funktion lassen sich die im Shop Verfügbaren Karten Packages anzeigen - POST HOST/transaction/packages --header "Content-Type: application/json" --header "Authorization: 123456" -d "{"PackId": "1"}"
Mit dieser Funktion lassen sich die im Shop Verfügbaren Karten packages kaufen, falls man genug Münzen besitzt. Hat man nicht genug Münzen, aber will trotzdem ein Package kaufen, dann muss man Werbung sehen um mehr Münzen zu bekommen. - GET HOST/watchads --header "Authorization: 123456"
Mit dieser Funktion kann man sich Werbung anzeigen lassen um sich mehr Münzen zu besorgen. Bis zum jetzigen Zeitpunkt steht noch nicht fest wann man Münzen kaufen kann ;-) - GET HOST/cards --header "Authorization: 123456"
Mit dieser Funktion kann man sich alle Karten vom eingeloggten User anzeigen lassen, die Karten im Deck werden besonders angezeigt. - GET HOST/deck --header "Authorization: 123456"
Mit dieser Funktion kann man sich alle Karten vom eingeloggten User im Deck anzeigen lassen. - PUT HOST/deck --header "Content-Type: application/json" --header "Authorization: 123456" -d "[{"DeckCard": "1"},{"DeckCard": "2"},{"DeckCard": "3"},{"DeckCard": "4"}]
Mit Funktion kann der eingeloggte User seine Karten vom Stack auswählen. Der User kann keine Karten auswählen die er nicht besitzt und es wird überprüft ob er auch genug Karten für das Deck ausgewählt hat. - GET HOST/stats --header "Authorization: 123456"
Mit dieser Funktion kann sich der User seine Statistik von seinem Account ansehen. Diese Statistik enthält: Anzahl der Gewonnen Spiele, Anzahl der Verlorenen Spiele, seinen Score, seine Anzahl von Münzen, seine Anzahl von ausgegebenen Münzen und wie viele Münzen er sich durch das Werbung schauen verdient hat. - GET HOST/score --header "Authorization: 123456"
Mit dieser Funktion kann man sich alle das Leaderboard von allen Spielern die mindestens einmal Verloren haben anzeigen lassen. Das Mindestens einmal Verloren ist deshalb wichtig um Bots auszusortieren. - GET HOST/trandings --header "Authorization: 123456"
Mit dieser Funktion kann man sich alle Karten die zum tauschen sind verfügbar sind anzeigen lassen. - POST HOST/trandings --header "Content-Type: application/json" --header "Authorization: 123456" -d "{"Insert":true,"WantId":6,"GiveId":12,"UserTradeWith":""}"
Mit dieser Funktion kann man einen Trading eintrag erstellen. - POST HOST/trandings --header "Content-Type: application/json" --header "Authorization: 123456" -d "{"Insert":true,"WantId":6,"GiveId":12,"UserTradeWith":""}"
Mit dieser Funktion kann man ein Trading Deal durchführen. - DELETE HOST/trandings --header "Content-Type: application/json" --header "Authorization: 123456" -d "{"WantedId":"6"}"
Mit dieser Funktion kann man einen Tradingeintrag löschen. - ___GET HOST/battle --header "Authorization: 123456" ___
Mit dieser Funktion kann man sich der eingeloggte User in eine Battle Que eintragen & bekommt eine Battleid. - GET HOST/log --header "Content-Type: application/json" --header "Authorization: 123456" -d "{"battleid":"6"}"
Mit dieser Funktion kann man sich der eingeloggte User alle Battles anschauen, welche schon durchgeführt worden sind.
Das einzige Problem das ich hatte war, dass ich dem Thread meine Battlelobby nicht mitgeben konnte. Meine Lösung bestand darin die Battlelobby so gut es ging in die Datenbank zu verschieben.
- BattleHandler (Klasse)
In dieser Klasse wurde getestet ob der User Genügend Karten im Deck hat (4 Karten).
Desweiteren wurden die SpellCardEffectivness und die DodgeAttack der Karten geprüft.
Es ist sehr wichtig für die User expierence und das Spiel gefühl, dass die Battle Logik ohne Fehler ist. Deswegen wurden dafür Tests geschrieben.
Desweiteren sind Unit Tests schwer zu machen, da sehr viele Methoden etwas aus einer Datenbank lesen oder schreiben
Aufwand für das MTC-Projekt ohne dem ersten Projekt: 100 Stunden