コード例 #1
0
 public ColonizeHackOrder(Service service, HackOrder hackOrder, Computer computerFrom, Computer computerTo)
 {
     context           = service;
     this.hackOrder    = hackOrder;
     this.computerFrom = computerFrom;
     this.computerTo   = computerTo;
 }
コード例 #2
0
        public static void TransportHackOrder(Service service, Computer computerTo, HackOrder hackOrder)
        {
            SystemSoftware systemSoftware = service.GetSystemSoftware()[Software.MYSQL];
            int            warehouse      = int.Parse(systemSoftware.Action1.Split(',')[computerTo.Software.MySqlVersion]);

            //se traspasan los recursos de las naves al ordenador
            computerTo.Resource.Knowledge += hackOrder.Knowledge;
            if (computerTo.Resource.Knowledge > warehouse)
            {
                computerTo.Resource.Knowledge = warehouse;
            }

            computerTo.Resource.Ingenyous += hackOrder.Ingenyous;
            if (computerTo.Resource.Ingenyous > warehouse)
            {
                computerTo.Resource.Ingenyous = warehouse;
            }

            computerTo.Resource.Coffee += hackOrder.Coffee;
            if (computerTo.Resource.Coffee > warehouse)
            {
                computerTo.Resource.Coffee = warehouse;
            }

            service.UpdateComputer(computerTo);

            //se vacía el hackOrder entero
        }
コード例 #3
0
 public AttackHackOrder(Service service, HackOrder hackOrder, Computer computerFrom, Computer computerTo)
 {
     context           = service;
     this.hackOrder    = hackOrder;
     this.computerFrom = computerFrom;
     this.computerTo   = computerTo;
     sysScripts        = context.GetSystemScripts();
 }
コード例 #4
0
        public async Task <HackOrder> SaveHackOrder(HackOrder hackOrder)
        {
            await dbContext.HackOrder.AddAsync(hackOrder);

            await dbContext.SaveChangesAsync();

            return(hackOrder);
        }
コード例 #5
0
 public void DeleteHackOrder(HackOrder hackOrder)
 {
     dbContext.HackOrder.Remove(hackOrder);
     dbContext.SaveChanges();
 }
コード例 #6
0
 public void UpdateHackOrder(HackOrder hackOrder)
 {
     dbContext.Update(hackOrder);
     dbContext.SaveChanges();
 }
コード例 #7
0
        public HackOrder CreateHackOrder(int instituteId, int computerId, string to, int type,
                                         int variable, int conditional, int iterator, int json, int _class, int breakpoint,
                                         int knowledge, int ingenyous, int coffee)
        {
            Computer  computer  = repository.GetComputer(computerId).Result;
            Institute institute = repository.GetInstitute(instituteId).Result;

            //Comprobaciones de naves
            if (variable > computer.Script.Variable ||
                conditional > computer.Script.Conditional ||
                iterator > computer.Script.Iterator ||
                json > computer.Script.Json ||
                _class > computer.Script.Class ||
                breakpoint > computer.Script.BreakPoint)
            {
                return(null);
            }

            /*//Comprobaciones de ip
             * if (!CheckIpHasComputer(instituteId, to))
             *  return null;*/

            //Comprobaciones de carga
            if (knowledge > computer.Resource.Knowledge ||
                ingenyous > computer.Resource.Ingenyous ||
                coffee > computer.Resource.Coffee)
            {
                return(null);
            }

            //Cálculo distancia
            int distance = Math.Abs(parseIpToNumber(computer.IpDirection) - parseIpToNumber(to));

            //Comprobaciones de café
            int totalScripts = variable + conditional + iterator + json + _class + breakpoint;
            int needCoffe    = totalScripts * distance;

            if (needCoffe > computer.Resource.Coffee)
            {
                return(null);
            }

            // Los gastos de recursos y naves
            computer.Resource.Knowledge -= knowledge;
            computer.Resource.Ingenyous -= ingenyous;
            computer.Resource.Coffee    -= coffee + needCoffe;

            computer.Script.Variable    -= variable;
            computer.Script.Conditional -= conditional;
            computer.Script.Iterator    -= iterator;
            computer.Script.Json        -= json;
            computer.Script.Class       -= _class;
            computer.Script.BreakPoint  -= breakpoint;

            //repository.NotAsyncUpdateResource(computer.Resource);
            Computer c = repository.UpdateComputer(computer).Result;

            Computer computerTo = repository.GetComputer(instituteId, to);

            HackOrder hackOrder = new HackOrder(
                computerId,
                type == 4 ? -1 : computerTo.Id,
                (int)(distance * 60 / institute.RateTime),
                variable,
                conditional,
                iterator,
                json,
                _class,
                breakpoint,
                type,
                knowledge,
                ingenyous,
                coffee,
                to
                );

            return(repository.SaveHackOrder(hackOrder).Result);
        }