You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

297 lines
7.3 KiB

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "character.h"
Character character;
void setCharacterHealthPoints (Character *character, int newHealthPoints){
character->healthPoints = newHealthPoints;
}
int getCharacterHealthPoints (Character *character) {
return character->healthPoints;
}
void setCharacterStrength (Character *character, int newStrength) {
character->strength = newStrength;
}
int getCharacterStrength (Character *character) {
return character->strength;
}
void setCharacterDexterity (Character *character, int newDexterity) {
character->dexterity = newDexterity;
}
int getCharacterDexterity (Character *character) {
return character->dexterity;
}
void setCharacterIntelligence (Character *character, int newIntelligence) {
character->intelligence = newIntelligence;
}
int getCharacterIntelligence (Character *character) {
return character->intelligence;
}
void setCharacterLevel (Character *character, int newLevel) {
character->level = newLevel;
}
int getCharacterLevel (Character *character) {
return character->level;
}
void setCharacterExp (Character *character, int newExp) {
character->exp = newExp;
}
int getCharacterExp (Character *character) {
return character->exp;
}
void setCharacterMaxExp (Character *character, int newMaxExp) {
character->maxExp = newMaxExp;
}
int getCharacterMaxExp (Character *character) {
return character->maxExp;
}
int calculateStatIncrease (Character *character, int amount) {
return character->level*amount;
}
void setCharacterMaxHealthPoints (Character *character, int newMaxHealthPoints){
character->maxHealthPoints = newMaxHealthPoints;
}
int getCharacterMaxHealthPoints (Character *character){
return character->maxHealthPoints;
}
void setCharacterAttack (Character *character, int newAttack){
character->attack = newAttack;
}
int getCharacterAttack (Character *character){
return character->attack;
}
void setCharacterArmor (Character *character, int newArmor){
character->armor = newArmor;
}
int getCharacterArmor (Character *character){
return character->armor;
}
void setCharacterGold (Character *character, int newGold){
character->gold = newGold;
}
int getCharacterGold (Character *character){
return character->gold;
}
void setCharacterName (Character *character, char *newName) {
strcpy(character->name,newName);
}
char* getCharacterName (Character *character) {
return character->name;
}
int getWeaponAttack (Weapon *weapon) {
return weapon->attack;
}
void setWeaponAttack (Weapon *weapon, int newAttack) {
weapon->attack = newAttack;
}
int getWeaponDurability (Weapon *weapon) {
return weapon->durability;
}
int setWeaponDurability (Weapon *weapon, int newDurability) {
weapon->durability = newDurability;
}
void setCharacterWeaponClass (Character* character, int weaponClass) {
character->weaponClass = weaponClass;
}
int getCharacterWeaponClass (Character* character) {
return character->weaponClass;
}
void increaseStat (Character *character, int stat, int amount) {
switch (stat)
{
case 1:
character->strength += amount;break;
case 2:
character->dexterity += amount;break;
case 3:
character->intelligence += amount;break;
case 4:
character->healthPoints += amount;break;
case 5:
character->manaPoints += amount;break;
case 6:
character->level += amount;break;
case 7:
character->exp += amount;break;
case 8:
character->maxExp += amount;break;
default:
break;
}
}
void levelUp (Character *character) {
if (getCharacterExp(character) > getCharacterMaxExp(character)) {
increaseStat(character,LEVEL,1);
setCharacterExp(character,getCharacterExp(character)-getCharacterMaxExp(character));
}
}
int calculateDamage (Character *character,Weapon *weapon) {
switch (character->weaponClass)
{
case 1:
return character->strength*weapon->attack;
case 2:
return character->dexterity*weapon->attack;
case 3:
return character->intelligence*weapon->attack;
default:
return 1;
}
}
void setCharacterStatPoints (Character* character, int newStatPoints) {
character->statPoints = newStatPoints;
}
int getCharacterStatPoints (Character* character) {
return character->statPoints;
}
void initializeCharacter (Character *character,int weaponClass) {
setCharacterHealthPoints(character,100);
setCharacterStrength(character,10);
setCharacterDexterity(character,10);
setCharacterIntelligence(character,10);
setCharacterLevel(character,1);
setCharacterExp(character,0);
setCharacterMaxExp(character,100);
setCharacterMaxHealthPoints(character,100);
setCharacterAttack(character,10);
setCharacterArmor(character,0);
setCharacterGold(character,0);
setCharacterName(character,"Player");
setCharacterWeaponClass(character,weaponClass);
setCharacterStatPoints(character,0);
}
void setItemID (Item *item, int newID) {
item->id = newID;
}
int getItemID (Item *item) {
return item->id;
}
void setItemAmount (Item *item, int newAmount) {
item->amount = newAmount;
}
int getItemAmount (Item *item) {
return item->amount;
}
void setItemDamage (Item *item, int newDamage) {
item->damage = newDamage;
}
int getItemDamage (Item *item) {
return item->damage;
}
void setItemHealing (Item *item, int newHealing) {
item->healing = newHealing;
}
int getItemHealing (Item *item) {
return item->healing;
}
void setItemMana (Item *item, int newMana) {
item->mana = newMana;
}
int getItemMana (Item *item) {
return item->mana;
}
void setItemName (Item *item, char newName[]) {
strcpy(item->name,newName);
}
char* getItemName (Item *item) {
return item->name;
}
void setCharacterStatus (Character *character, int newStatus) {
character->status = newStatus;
}
int getCharacterStatus (Character *character) {
return character->status;
}
void setCharacterStatusDuration (Character *character, int newStatusDuration) {
character->statusDuration = newStatusDuration;
}
int getCharacterStatusDuration (Character *character) {
return character->statusDuration;
}
void initializeInventory (Character *character) {
for (int i = 0; i < 10; i++)
{
character->inventory[i] = NULL;
}
}
void putItemInInventory (Character *character, Item *item,int inventorySlot) {
if(inventorySlot > 9) {
printf("Inventory slot is out of range (0-9)\n");
} else if (inventorySlot < 0) {
printf("Inventory slot is out of range (0-9)\n");
} else if (character->inventory[inventorySlot] == NULL) {
printf("Inventory slot is already occupied\n");
} else {
character->inventory[inventorySlot] = item;
}
}
Item * getItemInInventory (Character *character, int inventorySlot) {
if(inventorySlot > 9) {
printf("Inventory slot is out of range (0-9)\n");
return NULL;
} else if (inventorySlot < 0) {
printf("Inventory slot is out of range (0-9)\n");
return NULL;
} else if (character->inventory[inventorySlot] == NULL) {
printf("Inventory slot is empty\n");
return NULL;
} else {
return character->inventory[inventorySlot];
}
}