Add
This commit is contained in:
parent
285eba7197
commit
57056b9625
72
army.cpp
Normal file
72
army.cpp
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
//
|
||||||
|
// army.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
#include "event.h"
|
||||||
|
|
||||||
|
list<class army *> amy_vec;
|
||||||
|
|
||||||
|
army::army(class nation *p_ntn, class land *p_lnd, int t_amyofe, int num){
|
||||||
|
pm_lnd = p_lnd;
|
||||||
|
pm_ntn = p_ntn;
|
||||||
|
amyofe = t_amyofe;
|
||||||
|
sldmun = num;
|
||||||
|
sldeqp = p_ntn->amyeqp;
|
||||||
|
amycst = p_ntn->amycst;
|
||||||
|
amy_vec.push_back(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
army::~army(void){
|
||||||
|
remove(amy_vec.begin(), amy_vec.end(), this);
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::upgrade(void){
|
||||||
|
sldmun = amyofe * (pm_ntn->amypeo);
|
||||||
|
sldeqp = pm_ntn->amyeqp;
|
||||||
|
amycst = pm_ntn->amycst;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::fight(void){
|
||||||
|
return sldmun*sldeqp;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::kill(int num){
|
||||||
|
if (num <= sldmun){
|
||||||
|
sldmun -= num;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::add(int num){
|
||||||
|
if ((sldmun + num) <= (pm_ntn->amypeo * amyofe)){
|
||||||
|
if (pm_lnd->manpow >= num){
|
||||||
|
sldmun += num;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::move(class land *toland){
|
||||||
|
addarmymove(pm_lnd, toland, this);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::amy_cost(void){
|
||||||
|
return (sldmun * (1+pm_ntn->embezzle) * amycst) + (amyofe * pm_ntn->amyoffcst);
|
||||||
|
}
|
||||||
|
|
||||||
|
int army::del(void){
|
||||||
|
remove(amy_vec.begin(), amy_vec.end(), this);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
34
army.h
Normal file
34
army.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// army.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef army_h
|
||||||
|
#define army_h
|
||||||
|
|
||||||
|
class army {
|
||||||
|
public:
|
||||||
|
int sldmun;
|
||||||
|
int amyofe;
|
||||||
|
int sldeqp;
|
||||||
|
int amycst;
|
||||||
|
int armyv;
|
||||||
|
class land *pm_lnd;
|
||||||
|
class nation *pm_ntn;
|
||||||
|
|
||||||
|
int upgrade(void);
|
||||||
|
int move(class land *toland);
|
||||||
|
int amy_cost(void);
|
||||||
|
int fight(void);
|
||||||
|
int kill(int num);
|
||||||
|
int add(int num);
|
||||||
|
int del(void);
|
||||||
|
army(class nation *p_ntn, class land *p_lnd, int t_amyofe, int num);
|
||||||
|
~army(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* army_h */
|
10
event.cpp
Normal file
10
event.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
//
|
||||||
|
// event.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/21.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
42
event.h
Normal file
42
event.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
//
|
||||||
|
// event.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef event_h
|
||||||
|
#define event_h
|
||||||
|
|
||||||
|
class war{
|
||||||
|
class army *f_amy;
|
||||||
|
class army *s_amy;
|
||||||
|
int f_rand;
|
||||||
|
int s_rand;
|
||||||
|
|
||||||
|
public:
|
||||||
|
war(class army *pf_amy, class army *ps_amy);
|
||||||
|
class army *fight(void);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class move{
|
||||||
|
class army *p_amy;
|
||||||
|
class land *f_lnd;
|
||||||
|
class land *t_lnd;
|
||||||
|
|
||||||
|
public:
|
||||||
|
move(class army *p_amy, class land *f_lnd, class land *t_lnd);
|
||||||
|
int go(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
class event{
|
||||||
|
int time;
|
||||||
|
void *(func());
|
||||||
|
void *value;
|
||||||
|
public:
|
||||||
|
event(int time, void *(func()), void *value);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* event_h */
|
52
factory.cpp
Normal file
52
factory.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
//
|
||||||
|
// factory.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
list<class factory *> ftc_vec;
|
||||||
|
|
||||||
|
factory::factory(class land *p_lnd, class nation *p_ntn, int t_plcnum, int num){
|
||||||
|
pm_ntn = p_ntn;
|
||||||
|
pm_lnd = p_lnd;
|
||||||
|
plcnum = t_plcnum;
|
||||||
|
mpw = num;
|
||||||
|
pdt = p_ntn->pdteff;
|
||||||
|
ftc_vec.push_back(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
factory::~factory(void){
|
||||||
|
remove(ftc_vec.begin(),ftc_vec.end(),this);
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
|
||||||
|
int factory::setmpw(int num){
|
||||||
|
if(num < plcnum*pdt){
|
||||||
|
mpw = num;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int factory::upgrade(void){
|
||||||
|
pdt = pm_ntn->pdteff;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int factory::setplc(int num){
|
||||||
|
if (num < 0) return -1;
|
||||||
|
if (num * pm_ntn->plcpeo < mpw){
|
||||||
|
mpw = num * pm_ntn->plcpeo;
|
||||||
|
}
|
||||||
|
plcnum = num;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int factory::getpdt(void){
|
||||||
|
return (mpw * pdt * (1 - pm_ntn->embezzle)) - (plcnum * pm_ntn->plcoffcst);
|
||||||
|
}
|
||||||
|
|
29
factory.h
Normal file
29
factory.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// factory.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef factory_h
|
||||||
|
#define factory_h
|
||||||
|
|
||||||
|
class factory {
|
||||||
|
public:
|
||||||
|
int mpw;
|
||||||
|
int plcnum;
|
||||||
|
int pdt;
|
||||||
|
class land *pm_lnd;
|
||||||
|
class nation *pm_ntn;
|
||||||
|
|
||||||
|
int setmpw(int num);
|
||||||
|
int getpdt(void);
|
||||||
|
int upgrade(void);
|
||||||
|
int setplc(int num);
|
||||||
|
|
||||||
|
factory(class land *p_lnd, class nation *p_ntn, int t_plcnum, int num);
|
||||||
|
~factory(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* factory_h */
|
115
game.cpp
Normal file
115
game.cpp
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
//
|
||||||
|
// game.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/21.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
list<class route *> route_vec;
|
||||||
|
list<class armymove *> armymove_vec;
|
||||||
|
|
||||||
|
|
||||||
|
route::route(class land *f_lnd, class land *t_lnd, int distance){
|
||||||
|
this->f_lnd = f_lnd;
|
||||||
|
this->t_lnd = t_lnd;
|
||||||
|
this->distance = distance;
|
||||||
|
route_vec.push_back(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
int mdistance;
|
||||||
|
list<class route *> dway;
|
||||||
|
|
||||||
|
list<class route *> findway(class land *f_lnd, class land *t_lnd){
|
||||||
|
dway.clear();
|
||||||
|
mdistance = 0;
|
||||||
|
list<class route *>ntway;
|
||||||
|
getway(f_lnd, t_lnd, 0, ntway);
|
||||||
|
return dway;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getway(class land *f_lnd, class land *t_lnd,int tdistance, list<class route *>tway){
|
||||||
|
class land *pt_lnd;
|
||||||
|
while (pt_lnd == t_lnd){
|
||||||
|
for(list<class route *>::iterator lit = route_vec.begin(); lit != route_vec.end(); lit++){
|
||||||
|
if ((*lit)->f_lnd == f_lnd){
|
||||||
|
tdistance += (*lit)->distance;
|
||||||
|
tway.push_back(*lit);
|
||||||
|
if ((*lit)->t_lnd == t_lnd){
|
||||||
|
if (mdistance == 0){
|
||||||
|
dway = tway;
|
||||||
|
mdistance = tdistance;
|
||||||
|
tway.pop_back();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (tdistance < mdistance){
|
||||||
|
dway = tway;
|
||||||
|
mdistance = tdistance;
|
||||||
|
}
|
||||||
|
tway.pop_back();
|
||||||
|
tdistance -= (*lit)->distance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
list<class route *>ntway;
|
||||||
|
copy(tway.begin(), tway.end(), back_inserter(ntway));
|
||||||
|
if (mdistance != 0){
|
||||||
|
if (tdistance > mdistance){
|
||||||
|
tway.pop_back();
|
||||||
|
tdistance -= (*lit)->distance;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
getway((*lit)->f_lnd, t_lnd, tdistance, ntway);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
getway((*lit)->f_lnd, t_lnd, tdistance, ntway);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tway.clear();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
armymove::armymove(class land *templand, class land *toland, list<class route *>way, class army *parmy){
|
||||||
|
armymove_vec.push_back(this);
|
||||||
|
this->templnd = templand;
|
||||||
|
this->tolnd = toland;
|
||||||
|
this->way = way;
|
||||||
|
proute = way.begin();
|
||||||
|
lastdistance = (*proute)->distance;
|
||||||
|
this->parmy = parmy;
|
||||||
|
}
|
||||||
|
|
||||||
|
int armymove::golnd(void){
|
||||||
|
lastdistance -= parmy->armyv;
|
||||||
|
if (lastdistance <= 0){
|
||||||
|
templnd = (*proute)->t_lnd;
|
||||||
|
parmy->pm_lnd = templnd;
|
||||||
|
if (proute != way.end()){
|
||||||
|
proute++;
|
||||||
|
lastdistance = (*proute)->distance;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int addarmymove(class land *templand, class land *toland, class army *parmy){
|
||||||
|
list<class route *> way = findway(templand, toland);
|
||||||
|
armymove *tam = new armymove(templand, toland, way, parmy);
|
||||||
|
armymove_vec.push_back(tam);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int engine(void){
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
61
game.h
Normal file
61
game.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
//
|
||||||
|
// game.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/17.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef game_h
|
||||||
|
#define game_h
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <list>
|
||||||
|
#include <GLUT/glut.h>
|
||||||
|
|
||||||
|
#include "nation.h"
|
||||||
|
#include "factory.h"
|
||||||
|
#include "army.h"
|
||||||
|
#include "land.h"
|
||||||
|
#include "event.h"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
extern list<class factory *> ftc_vec;
|
||||||
|
extern list<class nation *> ntn_vec;
|
||||||
|
extern list<class land *> land_vec;
|
||||||
|
extern list<class army *> amy_vec;
|
||||||
|
extern list<class event *> event_vec;
|
||||||
|
extern list<class route *> route_vec;
|
||||||
|
|
||||||
|
class route {
|
||||||
|
|
||||||
|
public:
|
||||||
|
class land *f_lnd;
|
||||||
|
class land *t_lnd;
|
||||||
|
int distance;
|
||||||
|
route(class land *f_lnd, class land *t_lnd, int distance);
|
||||||
|
};
|
||||||
|
|
||||||
|
class armymove {
|
||||||
|
class land *templnd;
|
||||||
|
class land *tolnd;
|
||||||
|
int lastdistance;
|
||||||
|
class army *parmy;
|
||||||
|
list<class route *>::iterator proute;
|
||||||
|
list<class route *> way;
|
||||||
|
|
||||||
|
public:
|
||||||
|
int golnd(void);
|
||||||
|
armymove(class land *templand, class land *toland, list<class route *>way, class army *parmy);
|
||||||
|
};
|
||||||
|
|
||||||
|
int getway(class land *f_lnd, class land *t_lnd, int tdistance, list<class route *>tway);
|
||||||
|
list<class route *> findway(class land *f_lnd, class land *t_lnd);
|
||||||
|
int addarmymove(class land *templand, class land *toland, class army *parmy);
|
||||||
|
#endif /* game_h */
|
||||||
|
|
||||||
|
int engine(void);
|
88
land.cpp
Normal file
88
land.cpp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
//
|
||||||
|
// land.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
list<class land *> land_vec;
|
||||||
|
|
||||||
|
land::land(){
|
||||||
|
srand((unsigned int)time(NULL));
|
||||||
|
manpow = rand()%500;
|
||||||
|
mpwmax = rand()%2500 + 800;
|
||||||
|
mpwplus = rand()%15;
|
||||||
|
resource = rand()%1000;
|
||||||
|
resmax = rand()%8000;
|
||||||
|
resplus = rand()%50;
|
||||||
|
pm_ntn = NULL;
|
||||||
|
fctinit = rand()%4;
|
||||||
|
fctnum = 0;
|
||||||
|
land_vec.push_back(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
land::~land(void){
|
||||||
|
remove(land_vec.begin(),land_vec.end(),this);
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
int land::resrec(void){
|
||||||
|
if (resource + resplus < resmax){
|
||||||
|
resource += resplus;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
resource = resmax;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int land::mpwrec(void){
|
||||||
|
if (manpow + mpwplus < mpwmax){
|
||||||
|
manpow += mpwplus;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
manpow = mpwmax;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int land::getmpw(int num){
|
||||||
|
if (num <= manpow){
|
||||||
|
manpow -= num;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int land::getres(int num){
|
||||||
|
if (num <= resource){
|
||||||
|
resource -= num;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
class nation *target_ntn = NULL;
|
||||||
|
|
||||||
|
bool ntn_fct(const class factory *p_fct) {
|
||||||
|
if (p_fct->pm_ntn == target_ntn){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int land::cgentn(class nation *p_ntn){
|
||||||
|
if (p_ntn != NULL){
|
||||||
|
target_ntn = pm_ntn;
|
||||||
|
remove_if(ftc_vec.begin(),ftc_vec.end(),ntn_fct);
|
||||||
|
target_ntn = NULL;
|
||||||
|
pm_ntn = p_ntn;
|
||||||
|
fctnum = 0;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
34
land.h
Normal file
34
land.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// land.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef land_h
|
||||||
|
#define land_h
|
||||||
|
|
||||||
|
class land {
|
||||||
|
public:
|
||||||
|
int manpow;
|
||||||
|
int mpwplus;
|
||||||
|
int mpwmax;
|
||||||
|
int resource;
|
||||||
|
int resplus;
|
||||||
|
int resmax;
|
||||||
|
int fctnum;
|
||||||
|
int fctinit;
|
||||||
|
class nation *pm_ntn;
|
||||||
|
|
||||||
|
int resrec(void);
|
||||||
|
int mpwrec(void);
|
||||||
|
int getmpw(int num);
|
||||||
|
int getres(int num);
|
||||||
|
int cgentn(class nation *p_ntn);
|
||||||
|
|
||||||
|
land(void);
|
||||||
|
~land(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* land_h */
|
17
main.cpp
Normal file
17
main.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// main.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main(int argc, const char * argv[]) {
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
95
nation.cpp
Normal file
95
nation.cpp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
//
|
||||||
|
// nation.cpp
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
list<class nation *> ntn_vec;
|
||||||
|
|
||||||
|
|
||||||
|
nation::nation(int s_id){
|
||||||
|
amycst = 1;
|
||||||
|
fund = 1000;
|
||||||
|
embezzle = 0.5;
|
||||||
|
pdteff = 10;
|
||||||
|
n_id = s_id;
|
||||||
|
plcpeo = 20;
|
||||||
|
amypeo = 50;
|
||||||
|
amyeqp = 1;
|
||||||
|
amyoffcst = 15;
|
||||||
|
plcoffcst = 10;
|
||||||
|
lndplus = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
int nation::send_fund(int send){
|
||||||
|
fund += send;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int nation::set_amy(int sld_num,int mf_num, class land *p_land){
|
||||||
|
if (sld_num <= p_land->manpow && p_land->pm_ntn == this){
|
||||||
|
new army(this, p_land, mf_num, sld_num);
|
||||||
|
p_land->getmpw(sld_num);
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int nation::set_fct(int mpw_num, int pf_num,class land *p_land){
|
||||||
|
if (mpw_num <= p_land->manpow && p_land->pm_ntn == this){
|
||||||
|
if (p_land->fctnum < (p_land->fctinit+this->lndplus)){
|
||||||
|
new factory(p_land,this,pf_num,mpw_num);
|
||||||
|
p_land->getmpw(mpw_num);
|
||||||
|
}
|
||||||
|
else return -2;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int pdt_tech_def::upd_fct(class nation *p_ntn){
|
||||||
|
if (p_ntn->fund - fctgde * fctgde * 100 >= 0){
|
||||||
|
p_ntn->fund -= fctgde * fctgde * 100;
|
||||||
|
p_ntn->pdteff = p_ntn->pdteff * fctgde;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int pdt_tech_def::upd_lnd(class nation *p_ntn){
|
||||||
|
if (p_ntn->fund - lndgde * lndgde * 100 >= 0){
|
||||||
|
p_ntn->fund -= lndgde * lndgde * 100;
|
||||||
|
p_ntn->lndplus += 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ofc_tech_def::ugd_plc(class nation *p_ntn){
|
||||||
|
if (p_ntn->fund - plcgde * plcgde * 150 >= 0){
|
||||||
|
p_ntn->fund -= plcgde * plcgde * 150;
|
||||||
|
plcgde += 1;
|
||||||
|
p_ntn->plcpeo *= plcgde;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ofc_tech_def::ugd_amy(class nation *p_ntn){
|
||||||
|
if (p_ntn->fund - amygde * amygde * 100 >= 0) {
|
||||||
|
p_ntn->fund -= amygde * amygde * 100;
|
||||||
|
p_ntn->amypeo *= amygde * amygde * 0.6;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ofc_tech_def::ugd_spy(class nation *p_ntn){
|
||||||
|
if (p_ntn->fund - spygde * spygde * 50){
|
||||||
|
p_ntn->fund -= spygde * spygde * 50;
|
||||||
|
p_ntn->embezzle *= 0.85;
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
70
nation.h
Normal file
70
nation.h
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
//
|
||||||
|
// nation.h
|
||||||
|
// nation_war
|
||||||
|
//
|
||||||
|
// Created by Saturneric on 17/1/16.
|
||||||
|
// Copyright © 2017年 Bakantu Eric. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef nation_h
|
||||||
|
#define nation_h
|
||||||
|
|
||||||
|
|
||||||
|
class pdt_tech_def {
|
||||||
|
int pdtgde;
|
||||||
|
int fctgde;
|
||||||
|
int lndgde;
|
||||||
|
public:
|
||||||
|
int upd_fct(class nation *p_ntn);
|
||||||
|
int upd_lnd(class nation *p_ntn);
|
||||||
|
};
|
||||||
|
|
||||||
|
class ofc_tech_def {
|
||||||
|
int plcgde;
|
||||||
|
int amygde;
|
||||||
|
int emogde;
|
||||||
|
int spygde;
|
||||||
|
public:
|
||||||
|
int ugd_plc(class nation *p_ntn);
|
||||||
|
int ugd_amy(class nation *p_ntn);
|
||||||
|
int ugd_spy(class nation *p_ntn);
|
||||||
|
};
|
||||||
|
|
||||||
|
class amy_tech_def {
|
||||||
|
int maxgde;
|
||||||
|
int eqpgde;
|
||||||
|
|
||||||
|
public:
|
||||||
|
int upd_eqp(class nation *p_ntn);
|
||||||
|
};
|
||||||
|
|
||||||
|
class nation {
|
||||||
|
public:
|
||||||
|
int fund;
|
||||||
|
double embezzle;
|
||||||
|
double pdteff;
|
||||||
|
int amyeqp;
|
||||||
|
int n_id;
|
||||||
|
int plcpeo;
|
||||||
|
int amypeo;
|
||||||
|
int amycst;
|
||||||
|
int plcoffcst;
|
||||||
|
int amyoffcst;
|
||||||
|
int lndplus;
|
||||||
|
|
||||||
|
class pdt_tech_def m_ptd;
|
||||||
|
class ofc_tech_def m_otd;
|
||||||
|
class amy_tech_def m_atd;
|
||||||
|
|
||||||
|
int send_fund(int send);
|
||||||
|
int set_amy(int sld_num,int mf_num, class land *p_land);
|
||||||
|
int set_fct(int mpw_num, int pf_num,class land *p_land);
|
||||||
|
nation(int s_id);
|
||||||
|
~nation(void);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* nation_h */
|
Loading…
Reference in New Issue
Block a user