//BEGIN DESCRIPTION
//END DESCRIPTION
//BEGIN INCLUDES
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>
#include <string.h>
//END INCLUDES
//BEGIN CPP DEFINITIONS
#define RARITY_GRADES 3
//COLORS
//https://e...content-available-to-author-only...a.org/wiki/ANSI_escape_code#Colors
//END CPP DEFINITIONS
//BEGIN DATASTRUCTURES
struct grade{
char name[30];
int dr;
};
struct grade rarity[RARITY_GRADES];
struct drops{
char name[30];
struct grade rarity[RARITY_GRADES];
};
struct drops helmet1;
struct monster{
char name[30];
int droprate;
// int hp;
struct drops items;
};
struct monster barbar;
//END DATASTRUCTURES
//BEGIN GLOBALS
//END GLOBALS
//BEGIN FUNCTION PROTOTYPES
void monster_dies(struct monster);
bool drop(struct monster);
void item(struct monster);
//END FUNCTION PROTOTYPES
/* DEFINED PROGRESS GOALS
*
* todo todo todo
*
*/
//BEGIN MAIN FUNCTION
int main(void)
{
//BEGIN INIT
strcpy(rarity
[0].
name , "Junk"); rarity[0].dr= 0;
strcpy(rarity
[1].
name , "Magic"); rarity[1].dr= 89;
strcpy(rarity
[2].
name , "Ancient Artefact"); rarity[2].dr= 98;
int i;
for (i=0; i<RARITY_GRADES; i++){
helmet1.rarity[i]=rarity[i];
}
strcpy(helmet1.
name, "Wonderhelm");
strcpy(barbar.
name , "Barbar"); barbar.droprate=30;
barbar.items=helmet1;
//END INIT
for (i=0; i<100; i++){
monster_dies(barbar);
}
//BEGIN CLEAN UP
//END CLEAN UP
return EXIT_SUCCESS;
}
//END MAIN FUNCTION
//BEGIN FUNCTIONS
void monster_dies(struct monster entity)
{
//monster dies sound
//monster dies animation
if (drop(entity))
item(entity);
else
printf("%s dropped nothing!\n",entity.
name); //set respawn timer
}
bool drop(struct monster entity)
{
if (rand()%100 < entity.
droprate){ // printf("Monster dropped something!\n");
return true;
}
return false;
}
void item(struct monster entity)
{
printf("%s dropped %s in ",entity.
name,entity.
items.
name); int rn;
if(rn>entity.items.rarity[2].dr)
printf( "%s",entity.
items.
rarity[2].
name); else if (rn>entity.items.rarity[1].dr)
printf( "%s",entity.
items.
rarity[1].
name); else
printf( "%s",entity.
items.
rarity[0].
name);
}
//END FUNCTIONS
Ly9CRUdJTiBERVNDUklQVElPTgovL0VORCAgIERFU0NSSVBUSU9OCgovL0JFR0lOIElOQ0xVREVTCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KLy9FTkQgICBJTkNMVURFUwoKLy9CRUdJTiBDUFAgREVGSU5JVElPTlMKI2RlZmluZSBSQVJJVFlfR1JBREVTIDMKCi8vQ09MT1JTCi8vaHR0cHM6Ly9lLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLm9yZy93aWtpL0FOU0lfZXNjYXBlX2NvZGUjQ29sb3JzCi8vRU5EICAgQ1BQIERFRklOSVRJT05TCgovL0JFR0lOIERBVEFTVFJVQ1RVUkVTCnN0cnVjdCBncmFkZXsKCWNoYXIgbmFtZVszMF07CglpbnQgZHI7Cn07CnN0cnVjdCBncmFkZSByYXJpdHlbUkFSSVRZX0dSQURFU107CgpzdHJ1Y3QgZHJvcHN7CgljaGFyIG5hbWVbMzBdOwoJc3RydWN0IGdyYWRlIHJhcml0eVtSQVJJVFlfR1JBREVTXTsKfTsKc3RydWN0IGRyb3BzIGhlbG1ldDE7CgpzdHJ1Y3QgbW9uc3RlcnsKCWNoYXIgbmFtZVszMF07CglpbnQgZHJvcHJhdGU7Ci8vCWludCBocDsKCXN0cnVjdCBkcm9wcyBpdGVtczsKfTsKc3RydWN0IG1vbnN0ZXIgYmFyYmFyOwovL0VORAlEQVRBU1RSVUNUVVJFUwoKLy9CRUdJTiBHTE9CQUxTCi8vRU5EICAgR0xPQkFMUwoKLy9CRUdJTiBGVU5DVElPTiBQUk9UT1RZUEVTCnZvaWQgbW9uc3Rlcl9kaWVzKHN0cnVjdCBtb25zdGVyKTsKYm9vbCBkcm9wKHN0cnVjdCBtb25zdGVyKTsKdm9pZCBpdGVtKHN0cnVjdCBtb25zdGVyKTsKLy9FTkQJRlVOQ1RJT04gUFJPVE9UWVBFUwoKLyogREVGSU5FRCBQUk9HUkVTUyBHT0FMUwogKiAKICogdG9kbyB0b2RvIHRvZG8KICoKICovCgovL0JFR0lOIE1BSU4gRlVOQ1RJT04KaW50IG1haW4odm9pZCkKewoKLy9CRUdJTiBJTklUCnNyYW5kICh0aW1lKE5VTEwpKTsKc3RyY3B5KHJhcml0eVswXS5uYW1lICwgIkp1bmsiKTsKcmFyaXR5WzBdLmRyPSAwOwpzdHJjcHkocmFyaXR5WzFdLm5hbWUgLCAiTWFnaWMiKTsKcmFyaXR5WzFdLmRyPSA4OTsKc3RyY3B5KHJhcml0eVsyXS5uYW1lICwgIkFuY2llbnQgQXJ0ZWZhY3QiKTsKcmFyaXR5WzJdLmRyPSA5ODsKaW50IGk7CmZvciAoaT0wOyBpPFJBUklUWV9HUkFERVM7IGkrKyl7CgloZWxtZXQxLnJhcml0eVtpXT1yYXJpdHlbaV07Cn0Kc3RyY3B5KGhlbG1ldDEubmFtZSwgIldvbmRlcmhlbG0iKTsKCnN0cmNweShiYXJiYXIubmFtZSAsICJCYXJiYXIiKTsKYmFyYmFyLmRyb3ByYXRlPTMwOwpiYXJiYXIuaXRlbXM9aGVsbWV0MTsKCgoKLy9FTkQgICBJTklUCgpmb3IgKGk9MDsgaTwxMDA7IGkrKyl7Cgltb25zdGVyX2RpZXMoYmFyYmFyKTsKfQoKCi8vQkVHSU4gQ0xFQU4gVVAKLy9FTkQgICBDTEVBTiBVUApyZXR1cm4gRVhJVF9TVUNDRVNTOwp9Ci8vRU5EICAgTUFJTiBGVU5DVElPTgoKLy9CRUdJTiBGVU5DVElPTlMKdm9pZCBtb25zdGVyX2RpZXMoc3RydWN0IG1vbnN0ZXIgZW50aXR5KQp7Ci8vbW9uc3RlciBkaWVzIHNvdW5kCi8vbW9uc3RlciBkaWVzIGFuaW1hdGlvbgppZiAoZHJvcChlbnRpdHkpKQoJaXRlbShlbnRpdHkpOwplbHNlCglwcmludGYoIiVzIGRyb3BwZWQgbm90aGluZyFcbiIsZW50aXR5Lm5hbWUpOwovL3NldCByZXNwYXduIHRpbWVyCn0KCmJvb2wgZHJvcChzdHJ1Y3QgbW9uc3RlciBlbnRpdHkpCnsKaWYgKHJhbmQoKSUxMDAgPCBlbnRpdHkuZHJvcHJhdGUpewovLyAJcHJpbnRmKCJNb25zdGVyIGRyb3BwZWQgc29tZXRoaW5nIVxuIik7CglyZXR1cm4gdHJ1ZTsKfQpyZXR1cm4gZmFsc2U7Cn0KCnZvaWQgaXRlbShzdHJ1Y3QgbW9uc3RlciBlbnRpdHkpCnsKcHJpbnRmKCIlcyBkcm9wcGVkICVzIGluICIsZW50aXR5Lm5hbWUsZW50aXR5Lml0ZW1zLm5hbWUpOwppbnQgcm47CnJuPXJhbmQoKSUxMDA7CgppZihybj5lbnRpdHkuaXRlbXMucmFyaXR5WzJdLmRyKQoJcHJpbnRmKCAiJXMiLGVudGl0eS5pdGVtcy5yYXJpdHlbMl0ubmFtZSk7CmVsc2UgaWYgKHJuPmVudGl0eS5pdGVtcy5yYXJpdHlbMV0uZHIpCglwcmludGYoICIlcyIsZW50aXR5Lml0ZW1zLnJhcml0eVsxXS5uYW1lKTsKZWxzZQoJcHJpbnRmKCAiJXMiLGVudGl0eS5pdGVtcy5yYXJpdHlbMF0ubmFtZSk7CnByaW50ZiggIiByYXJpdHlcbiIpOwoKfQovL0VORCAgIEZVTkNUSU9OUwoK