From b67e1cfa21d304bcc3f5003b727236694b8614f5 Mon Sep 17 00:00:00 2001 From: komiko44240BB Date: Sat, 28 Sep 2024 19:25:05 +0200 Subject: [PATCH] update perks --- Perk_data/data/healing_perks.xlsx | Bin 12956 -> 12975 bytes Perk_data/data/weapons_perks.xlsx | Bin 19947 -> 20130 bytes perks.c | 260 ++++++++++++++++++++++++++---- perks.h | 4 +- 4 files changed, 231 insertions(+), 33 deletions(-) diff --git a/Perk_data/data/healing_perks.xlsx b/Perk_data/data/healing_perks.xlsx index 450a6e7189e8bd938e1d8f8a3f08e78bd9b089dc..19ed1263b5f5fc78f16454a692f5b36688c5581d 100644 GIT binary patch delta 4788 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 diff --git a/Perk_data/data/weapons_perks.xlsx b/Perk_data/data/weapons_perks.xlsx index 6714098893ffcef5a83b99a39793697705f69c60..d908420de7a50821f25f032a8574b39f1c7e0a97 100644 GIT binary patch delta 11583 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 HAJ6_D!ar#a delta 11411 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 diff --git a/perks.c b/perks.c index 6102cfa..1e433b8 100644 --- a/perks.c +++ b/perks.c @@ -14,7 +14,40 @@ struct Perk* createPerk(char* first_boost_type,char* second_boost_type, int firs } int numberOfPerks(struct Object* o) { - + if(strcmp(o->rarity, "common") == 0){ + if(o->level>20){ + return 1; + } + return 0; + } + if(strcmp(o->rarity, "uncommon") == 0){ + switch (o->level){ + case o->level > 30: return 2; + case o->level > 10: return 1; + default: return 0; + } + } + if(strcmp(o->rarity, "rare") == 0){ + switch (o->level){ + case o->level > 20: return 3; + case o->level > 10: return 2; + default: return 1; + } + } + if(strcmp(o->rarity, "epic") == 0){ + switch (o->level){ + case o->level > 30: return 4; + case o->level > 10: return 3; + default: return 2; + } + } + if(strcmp(o->rarity, "legendary") == 0){ + if(o->level>20){ + return 4; + } + return 3; + } + return 0; } void addPerks(struct Object* o) { @@ -37,28 +70,29 @@ void addPerks(struct Object* o) { scanf("%d",&choice); clearInputBuffer(); switch (choice){ - case 1 : - is_event = true; - perk_choice = false; - break; - case 2: - is_event = false; - perk_choice = false; - break; - case 0: - return; - default: - printf("Wrong input\n"); + case 1 : + is_event = true; + perk_choice = false; + break; + case 2: + is_event = false; + perk_choice = false; + break; + case 0: + return; + default: + printf("Wrong input\n"); } } char** perk_list = perkLists(o); - displayAvailablePerks(perk_list, is_event); + o->perk_list[i] = displayAndChoseAvailablePerks(perk_list, is_event); } + return; } -void displayAvailablePerks(char** perk_list, bool is_event) { +struct Perk* displayAndChoseAvailablePerks(char** perk_list, bool is_event) { if(perk_list == NULL){ - return; + return NULL; } char* perk_rarity = "" ; bool perk_rarity_choice = true; @@ -100,6 +134,7 @@ void displayAvailablePerks(char** perk_list, bool is_event) { printf("Invalid choice, please try again\n"); } } + if(is_event){ char* event_perks_file_name_self = malloc(19 + strlen(perk_rarity) + 1 + strlen(perk_list[0]) + 4 + 1); char* event_perks_file_name_group = malloc(19 + strlen(perk_rarity) + 1 + strlen(perk_list[1]) + 4 + 1); @@ -107,33 +142,194 @@ void displayAvailablePerks(char** perk_list, bool is_event) { free(perk_rarity); free(event_perks_file_name_self); free(event_perks_file_name_group); - return; + return NULL; } sprintf(event_perks_file_name_self, "../Perk_data/event_%s_%s.csv", perk_rarity, perk_list[0]); sprintf(event_perks_file_name_group, "../Perk_data/event_%s_%s.csv", perk_rarity, perk_list[1]); - - FILE* file = fopen(event_perks_file_name_self, "r"); - if (file == NULL) { - printf("Error opening \"%s\", file does not exist\n", event_perks_file_name_self); - return ; - } + char* perks_full_path[2] = {event_perks_file_name_self, event_perks_file_name_group}; char line[MAX_LINE_SIZE]; - if (fgets(line, sizeof(line), file) == NULL) { - fclose(file); - return; + int perk_iter = 0; + int perk_choice[2] = {0}; + printf("What do you want to do\n"); + printf("------------------------\n"); + for(int i =0; i < 2; i++){ + FILE* file = fopen(perks_full_path[i], "r"); + if (file == NULL) { + printf("Error opening \"%s\", file does not exist\n", perks_full_path[i]); + }else{ + if (fgets(line, sizeof(line), file) == NULL) { + fclose(file); + return NULL; + } + while(!feof(file)){ + if (fgets(line, sizeof(line), file) == NULL) { + fclose(file); + return NULL; + } + char* copiedline = strdup(line); + perk_iter++; + printf("%d. %s\n", perk_iter,copiedline); + } + if(i>0){ + perk_choice[i] = perk_iter - perk_choice[i-1]; + }else{ + perk_choice[i] = perk_iter; + } + + fclose(file); + } + } + printf("------------------------\n"); + printf("Your choice: "); + int choice_perk = 0; + scanf("%d",&choice_perk); + clearInputBuffer(); + int file_number = -1; + if(choice_perk <= perk_choice[0]){ + file_number = 0; + } else{ + file_number = 1; } - char* copiedline = strdup(line); + FILE* file = fopen(perks_full_path[file_number], "r"); + if (file == NULL) { + printf("Error opening \"%s\", file does not exist\n", perks_full_path[file_number]); + }else{ + if (fgets(line, sizeof(line), file) == NULL) { + fclose(file); + return NULL; + } + perk_iter = 1; + while(choice_perk0){ + perk_choice[i] = perk_iter - perk_choice[i-1]; + }else{ + perk_choice[i] = perk_iter; + } + fclose(file); + } + } + printf("------------------------\n"); + printf("Your choice: "); + int choice_perk = 0; + scanf("%d",&choice_perk); + clearInputBuffer(); + if(choice_perk <= perk_choice[0]){ + + } + int file_number = -1; + if(choice_perk <= perk_choice[0]){ + file_number = 0; + } else{ + if((choice_perk - perk_choice[0])<= perk_choice[1]){ + file_number = 1; + }else{ + file_number = 2; + } + } + + FILE* file = fopen(perks_full_path[file_number], "r"); + if (file == NULL) { + printf("Error opening \"%s\", file does not exist\n", perks_full_path[file_number]); + }else{ + if (fgets(line, sizeof(line), file) == NULL) { + fclose(file); + return NULL; + } + perk_iter = 1; + while(choice_perkis_event = is_event; +} diff --git a/perks.h b/perks.h index d80471c..2bc6331 100644 --- a/perks.h +++ b/perks.h @@ -19,6 +19,8 @@ struct Perk* createPerk(char* first_boost_type,char* second_boost_type, int firs int numberOfPerks(struct Object* o); void addPerks(struct Object* o); char** perkLists(struct Object* o); -void displayAvailablePerks(char** perk_list, bool is_event); +struct Perk* displayAndChoseAvailablePerks(char** perk_list, bool is_event); + +void updateEvent(struct Perk* p,bool is_event); #endif