#include "util.h" namespace util{ float random(float range){ return float(rand())/RAND_MAX*range; } void ApplyMatrixEffect(PixelGameEngine*pge,Renderable&r,Renderable&originalImg,std::unique_ptr&matrixImg){ pge->SetDrawTarget(r.Sprite()); pge->Clear(BLANK); for(int y=0;yheight;y++){ for(int x=0;xwidth;x++){ Pixel col=originalImg.Sprite()->GetPixel(x,y); if(col==WHITE){ pge->Draw({x,y},matrixImg->Sprite()->GetPixel(x,y)); } else { pge->Draw({x,y},originalImg.Sprite()->GetPixel(x,y)); } } } pge->SetDrawTarget(nullptr); r.Decal()->Update(); }; bool CanAfford(Resources&resources,std::vector&unitCosts){ for(Memory&mem:unitCosts){ switch(mem.type){ case HEALTH:{ if(resources.health&unitCosts){ for(Memory&mem:unitCosts){ if(mem.type==HEALTH)return mem.size; } return -1; }; int GetAtkSpdCost(std::vector&unitCosts){ for(Memory&mem:unitCosts){ if(mem.type==ATKSPD)return mem.size; } return -1; }; int GetMoveSpdCost(std::vector&unitCosts){ for(Memory&mem:unitCosts){ if(mem.type==MOVESPD)return mem.size; } return -1; }; int GetRangeCost(std::vector&unitCosts){ for(Memory&mem:unitCosts){ if(mem.type==RANGE)return mem.size; } return -1; }; int GetProcedureCost(std::vector&unitCosts){ for(Memory&mem:unitCosts){ if(mem.type==PROCEDURE)return mem.size; } return -1; }; }