Skip to content
This repository has been archived by the owner on Dec 3, 2022. It is now read-only.

Commit

Permalink
Merge pull request #52 from skuzow/develop
Browse files Browse the repository at this point in the history
v1.0.0
  • Loading branch information
skuzow authored Jul 10, 2022
2 parents f0a6752 + 38e1fbb commit acfa9da
Show file tree
Hide file tree
Showing 31 changed files with 1,947 additions and 449 deletions.
18 changes: 7 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
# myth-arena
# ⚔️ Myth Arena

[![license](https://img.shields.io/github/license/legendnightt/myth-arena.svg)](https://github.com/legendnightt/myth-arena/blob/master/LICENSE)
[![license](https://img.shields.io/github/license/skuzow/myth-arena.svg)](https://github.com/skuzow/myth-arena/blob/master/LICENSE)

Fight arena game where players have their own myth creatures, mp final project.
Fight arena game where players have their own myth creatures, MP final project.

## Collaborators

- AC Group
## 👤 Collaborators

| **Name** | **Github Username** |
|:-----------------------------:|:-------------------:|
| Alejandro Porras Torrecilla | legendnightt |
| Alejandro Porras Torrecilla | skuzow |
| Gledrian Gutierrez Regala | gutche |
| Ignacio Caniculo Dominguez | nachocaniculo |
| Pablo Antolín Martínez | Pbantolin12 |

## Applied Methodologies
## ♻️ Applied Methodologies

We have applied different methodologies during the project like, SCRUM to organize work with [JIRA](https://myth-arena.atlassian.net/jira/software/projects/MYT/boards/1/roadmap) tool in this case, and about technical aspect, we have been using [gitFlow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) workflow for organizing branches and commits in general.
We have applied different methodologies during the project, SCRUM to organize work with [JIRA](https://myth-arena.atlassian.net/jira/software/projects/MYT/boards/1/roadmap) tool in this case, and about technical aspect, we have been using [gitFlow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) workflow for organizing branches and have standards for commits.
Binary file added lib/apiguardian-api-1.1.2.jar
Binary file not shown.
Binary file added lib/hamcrest-core-1.3.jar
Binary file not shown.
Binary file added lib/json_simple.jar
Binary file not shown.
Binary file added lib/junit-4.13.2.jar
Binary file not shown.
Binary file added lib/junit-platform-commons-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/junit-platform-engine-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/junit-platform-launcher-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/junit-platform-runner-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/junit-platform-suite-api-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/junit-platform-suite-commons-1.9.0-M1.jar
Binary file not shown.
Binary file added lib/opentest4j-1.2.0.jar
Binary file not shown.
388 changes: 312 additions & 76 deletions src/mytharena/Arena.java

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/mytharena/MythArena.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class MythArena {
*/
public static void main(String[] args) {
Arena arena = new Arena();
arena.start();
arena.start(true);
}

}
179 changes: 122 additions & 57 deletions src/mytharena/command/AdminMenu.java

Large diffs are not rendered by default.

1,304 changes: 1,034 additions & 270 deletions src/mytharena/command/PlayerMenu.java

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions src/mytharena/command/StartMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import mytharena.gui.MythArenaGui;

import java.io.IOException;
import java.util.Objects;

/**
* Start class extends Command
Expand Down Expand Up @@ -97,8 +98,8 @@ private void register() {
String user = super.getMythArenaGui().getFieldText(0);
String pass = super.getMythArenaGui().getFieldText(1);
String nick = super.getMythArenaGui().getFieldText(2);
if (user == null || user.length() < 4 && pass == null || pass.length() < 4 && nick == null || nick.length() < 4) {
super.getMythArenaGui().setDescription("All fields must be filled in to register. Fields must have at least 4 characters");
if ((Objects.equals(user, "") || user.length() < 4) || (Objects.equals(pass, "") || (pass.length() > 12 || pass.length() < 8)) || (Objects.equals(nick, "") || nick.length() < 4)) {
super.getMythArenaGui().setDescription("All fields must be filled in to register. Name and Nick must be at least 4 characters and Pass 8-12");
} else {
// Check if username or nickname is taken
boolean isUnique = true;
Expand Down
60 changes: 58 additions & 2 deletions src/mytharena/data/Data.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@
import mytharena.data.character.inventory.equipment.Weapon;
import mytharena.data.combat.Combat;
import mytharena.data.combat.PendingCombat;
import mytharena.data.market.Offer;
import mytharena.data.user.Player;
import mytharena.data.user.User;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

import java.io.FileReader;
import java.io.Reader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
Expand Down Expand Up @@ -41,6 +46,18 @@ public class Data implements Serializable {
* ArrayList Armor armorPool
*/
private final ArrayList<Armor> armorPool = new ArrayList<>();
/**
* ArrayList Offer marketOffers
*/
private final ArrayList<Offer> marketOffers = new ArrayList<>();
/**
* ArrayList Offer purchasedOffers
*/
private final ArrayList<Offer> purchasedOffers = new ArrayList<>();
/**
* ArrayList Offer pendingMarketOffers
*/
private final ArrayList<Offer> pendingMarketOffers = new ArrayList<>();

/**
* Gets ArrayList User userArrayList
Expand Down Expand Up @@ -75,19 +92,58 @@ public ArrayList<PendingCombat> getPendingCombatArrayList() {
}

/**
* Get ArrayList Weapon weaponPool
* Gets ArrayList Weapon weaponPool
* @return ArrayList Weapon weaponPool
*/
public ArrayList<Weapon> getWeaponPool() {
return this.weaponPool;
}

/**
* ArrayList Armor armorPool
* Gets ArrayList Armor armorPool
* @return ArrayList Armor armorPool
*/
public ArrayList<Armor> getArmorPool() {
return this.armorPool;
}

/**
* Gets ArrayList Offer marketOffers
* @return ArrayList Offer marketOffers
*/
public ArrayList<Offer> getMarketOffers() {
return this.marketOffers;
}

/**
* Gets ArrayList Offer purchasedOffers
* @return ArrayList Offer purchasedOffers
*/
public ArrayList<Offer> getPurchasedOffers() {
return this.purchasedOffers;
}

/**
* Gets ArrayList Offer pendingMarketOffers
* @return ArrayList Offer pendingMarketOffers
*/
public ArrayList<Offer> getPendingMarketOffers() {
return this.pendingMarketOffers;
}

/**
* Gets JSONObject defaultMarketSubscriptions
* @return JSONObject defaultMarketSubscriptions
*/
public JSONObject getDefaultMarketSubscriptions() {
String defaultSubscriptionsPath = "./src/resources/market/subscriptions.json";
try (Reader reader = new FileReader(defaultSubscriptionsPath)) {
JSONParser parser = new JSONParser();
return (JSONObject) parser.parse(reader);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

}
8 changes: 8 additions & 0 deletions src/mytharena/data/character/Marketable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package mytharena.data.character;

/**
* Marketable class
*/
public class Marketable {

}
19 changes: 12 additions & 7 deletions src/mytharena/data/character/factory/character/Character.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,16 +74,21 @@ public Character(Data data) {
// Randomly gets 3 armor and 3 weapons
ArrayList<Equipment> armorArrayList = new ArrayList<>();
ArrayList<Equipment> weaponArrayList = new ArrayList<>();
for (int cont = 0; cont < 3; cont++) {
armorArrayList.add(data.getArmorPool().get(rand.nextInt(data.getArmorPool().size())));
weaponArrayList.add(data.getWeaponPool().get(rand.nextInt(data.getWeaponPool().size())));
if (data.getWeaponPool().size() > 0 && data.getArmorPool().size() > 0) {
for (int cont = 0; cont < 3; cont++) {
armorArrayList.add(data.getArmorPool().get(rand.nextInt(data.getArmorPool().size())));
weaponArrayList.add(data.getWeaponPool().get(rand.nextInt(data.getWeaponPool().size())));
}
}
this.setInventory(new Inventory(weaponArrayList, armorArrayList));
// By default, the first weapon/armor in inventory will be equipped
this.setArmor(getInventory().getArmorArrayList().get(0));
ArrayList<Equipment> equippedWeaponArrayList = new ArrayList<>();
equippedWeaponArrayList.add(getInventory().getWeaponArrayList().get(0));
this.setEquippedWeaponArrayList(equippedWeaponArrayList);
// By default, the first weapon/armor in inventory will be equipped
if (getInventory().getArmorArrayList().size() > 0 && getInventory().getWeaponArrayList().size() > 0) {
this.setArmor(getInventory().getArmorArrayList().get(0));
equippedWeaponArrayList.add(getInventory().getWeaponArrayList().get(0));
this.setEquippedWeaponArrayList(equippedWeaponArrayList);
}

// Get minion count
double roll = Math.random();
int minionsCount;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ public class Vampire extends Character implements Serializable {
public Vampire(Data data) {
super(data);
Random rand = new Random();
this.age = rand.nextInt(1000)+1;
this.bloodPoints = 0;
super.setAbility(new Discipline(rand.nextInt(3) + 1, rand.nextInt(3) + 1));
age = rand.nextInt(1000)+1;
bloodPoints = 0;
setAbility(new Discipline(rand.nextInt(3) + 1, rand.nextInt(3) + 1));
ArrayList<Modifier> weaknessArrayList = new ArrayList<>();
weaknessArrayList.add(new Modifier("Luz solar", rand.nextInt(5) + 1));
super.setFortitudeArrayList(weaknessArrayList);
setWeaknessArrayList(weaknessArrayList);
}

/**
Expand Down
4 changes: 3 additions & 1 deletion src/mytharena/data/character/factory/minion/Minion.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package mytharena.data.character.factory.minion;

import mytharena.data.character.Marketable;

import java.io.Serializable;
import java.util.Random;

/**
* Minion abstract class implements Serializable
*/
public abstract class Minion implements Serializable {
public abstract class Minion extends Marketable implements Serializable {

/**
* int health
Expand Down
4 changes: 2 additions & 2 deletions src/mytharena/data/character/inventory/equipment/Armor.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ public class Armor extends Equipment implements Serializable {
* @param attackModification int attackModification
* @param defenseModification int defenseModification
*/
public Armor(String name, int attackModification, int defenseModification) {
super(name, attackModification, defenseModification);
public Armor(String name, int attackModification, int defenseModification, String rarity) {
super(name, attackModification, defenseModification,rarity);
}

}
13 changes: 11 additions & 2 deletions src/mytharena/data/character/inventory/equipment/Equipment.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package mytharena.data.character.inventory.equipment;

import mytharena.data.character.Marketable;

import java.io.Serializable;

/**
* Equipment abstract class implements Serializable
*/
public abstract class Equipment implements Serializable {
public abstract class Equipment extends Marketable implements Serializable {

/**
* String name
Expand All @@ -20,16 +22,19 @@ public abstract class Equipment implements Serializable {
*/
private final int defenseModification;

private final String rarity;

/**
* Equipment abstract class constructor
* @param name String name
* @param attackModification int attackModification
* @param defenseModification int defenseModification
*/
public Equipment(String name, int attackModification, int defenseModification) {
public Equipment(String name, int attackModification, int defenseModification, String rarity) {
this.name = name;
this.attackModification = attackModification;
this.defenseModification = defenseModification;
this.rarity = rarity;
}

/**
Expand All @@ -56,4 +61,8 @@ public int getDefenseModification() {
return this.defenseModification;
}

public String getRarity() {
return rarity;
}

}
6 changes: 4 additions & 2 deletions src/mytharena/data/character/inventory/equipment/Weapon.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ public class Weapon extends Equipment implements Serializable {
* @param attackModification int attackModification
* @param defenseModification int defenseModification
* @param twoHands boolean twoHands
* @param rarity String rarity
*/
public Weapon(String name, int attackModification, int defenseModification, boolean twoHands) {
super(name, attackModification, defenseModification);
public Weapon(String name, int attackModification, int defenseModification, boolean twoHands, String rarity) {
super(name, attackModification, defenseModification,rarity);
this.twoHands = twoHands;
}

Expand All @@ -32,4 +33,5 @@ public boolean isTwoHands() {
return this.twoHands;
}


}
83 changes: 83 additions & 0 deletions src/mytharena/data/market/Offer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package mytharena.data.market;

import mytharena.data.character.Marketable;
import mytharena.data.user.Player;

import java.io.Serializable;
import java.util.ArrayList;

/**
* Offer class implements Serializable
*/
public class Offer implements Serializable {

/**
* Player buyer
*/
private Player buyer;
/**
* Player seller
*/
private final Player seller;
/**
* int Price
*/
private final int price;
/**
* ArrayList ArrayList Marketable itemList
*/
private final ArrayList<ArrayList<Marketable>> itemList;

/**
* Offer class constructor
* @param seller Player seller
* @param price int Price
* @param itemList ArrayList ArrayList Marketable itemList
*/
public Offer(Player seller, int price, ArrayList<ArrayList<Marketable>> itemList) {
this.seller = seller;
this.price = price;
this.itemList = itemList;
}

/**
* Sets Player buyer
* @param buyer Player buyer
*/
public void setBuyer(Player buyer) {
this.buyer = buyer;
}

/**
* Gets Player buyer
* @return Player buyer
*/
public Player getBuyer() {
return this.buyer;
}

/**
* Gets Player seller
* @return Player seller
*/
public Player getSeller() {
return this.seller;
}

/**
* Gets int price
* @return int price
*/
public int getPrice() {
return this.price;
}

/**
* Gets ArrayList ArrayList Marketable itemList
* @return ArrayList ArrayList Marketable itemList
*/
public ArrayList<ArrayList<Marketable>> getItemList() {
return this.itemList;
}

}
Loading

0 comments on commit acfa9da

Please sign in to comment.