コード例 #1
0
ファイル: Faccion.cs プロジェクト: PcloD/InfiniteSpace
 public void SetRelacion(Faccion faccion, RelacionConOtraFaccionEnum relacion)
 {
     if (relaciones.ContainsKey(faccion))
     {
         relaciones[faccion] = relacion;
     }
     else
     {
         relaciones.Add(faccion, relacion);
     }
 }
コード例 #2
0
ファイル: Sector.cs プロジェクト: PcloD/InfiniteSpace
        public Sector(Galaxia galaxia, SectorID sectorID, Faccion faccion)
        {
            this.galaxia  = galaxia;
            this.sectorID = sectorID;
            this.faccion  = faccion;

            tamanio = new Vector2(TamanioSector, TamanioSector);
            centro  = new Vector2(SectorID.X * TamanioSector, SectorID.Y * TamanioSector);

            CrearEstrellas();
        }
コード例 #3
0
        private void Inicializar()
        {
            generador.Inicializar(this);

            tamanioEnSectores = generador.GetTamanioEnSectores();

            facciones.AddRange(generador.InicializarFacciones());

            posicionInicialJugador = generador.GetPosicionInicialJugador();

            faccionJugador = generador.GetFaccionJugador();
        }
コード例 #4
0
ファイル: Faccion.cs プロジェクト: PcloD/InfiniteSpace
 public void InformarDestruccionDePropiedad(Faccion deFaccion)
 {
     if (!relaciones.ContainsKey(deFaccion))
     {
         relaciones.Add(deFaccion, RelacionConOtraFaccionEnum.Agresiva);
     }
     else
     {
         if (relaciones[deFaccion] != RelacionConOtraFaccionEnum.Amigable)
         {
             relaciones[deFaccion] = RelacionConOtraFaccionEnum.Agresiva;
         }
     }
 }
コード例 #5
0
ファイル: Faccion.cs プロジェクト: PcloD/InfiniteSpace
        public RelacionConOtraFaccionEnum GetRelacion(Faccion faccion)
        {
            if (faccion == this)
            {
                return(RelacionConOtraFaccionEnum.Amigable);
            }

            if (relaciones.ContainsKey(faccion))
            {
                return(relaciones[faccion]);
            }

            switch (tipoFaccion)
            {
            case TipoFaccionEnum.Neutral:
            case TipoFaccionEnum.Pavisa:
            case TipoFaccionEnum.Recolectora:
                return(RelacionConOtraFaccionEnum.Neutral);

            case TipoFaccionEnum.Agresiva:
            default:
                return(RelacionConOtraFaccionEnum.Agresiva);
            }
        }
コード例 #6
0
ファイル: Faccion.cs プロジェクト: PcloD/InfiniteSpace
 public void InformarAtaque(Faccion deFaccion)
 {
 }
コード例 #7
0
        public Vector2 BuscarPosicionPlanetaFaccion(Vector2 centro, float radioDeBusqueda, Faccion faccion)
        {
            Vector2 posicion = new Vector2(0, 0);

            Sector sectorCentro = GetSectorEnPosicion(centro);

            int radioDeBusquedaEnSectores = 1 + (int)(radioDeBusqueda / Sector.TamanioSector);

            for (int x = sectorCentro.SectorID.X - radioDeBusquedaEnSectores; x <= sectorCentro.SectorID.X + radioDeBusquedaEnSectores; x++)
            {
                for (int y = sectorCentro.SectorID.Y - radioDeBusquedaEnSectores; y <= sectorCentro.SectorID.Y + radioDeBusquedaEnSectores; y++)
                {
                    Sector sector = GetSector(new SectorID(x, y));

                    if (sector.Faccion == faccion)
                    {
                        foreach (Thing thing in sector.Things)
                        {
                            if (thing is ThingPlaneta)
                            {
                                if (posicion.X == 0 && posicion.Y == 0 ||
                                    (posicion - centro).Length > (thing.Centro - centro).Length)
                                {
                                    posicion = thing.Centro;
                                }
                            }
                        }
                    }
                }
            }

            return(posicion);
        }