From eba9be67fc48e2ec925511e908fba7d1516d93c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20G=C3=B6rgen?= Date: Sun, 13 Apr 2025 22:48:56 +0200 Subject: [PATCH] Initial commit --- .env.sample | 1 + .gitignore | 8 + alembic.ini | 119 + database/Base.py | 84 + database/Resolution.py | 10 + database/__init__.py | 1 + main.py | 13 + migrations/README | 1 + migrations/env.py | 79 + migrations/script.py.mako | 28 + poetry.lock | 870 + pyproject.toml | 26 + settings.py | 9 + static/resolutions/00_resolutions.txt | 14056 ++++++++++++++++ .../resolutions/00_resolutions_modified.txt | 14040 +++++++++++++++ static/resolutions/01_resolutions_nemesis.txt | 5775 +++++++ .../resolutions/02_resolutions_overlord.txt | 2098 +++ .../03_resolutions_first_contact_dlc.txt | 789 + .../04_resolutions_machine_age.txt | 158 + tools/__init__.py | 0 tools/cw_parser.py | 2093 +++ 21 files changed, 40258 insertions(+) create mode 100644 .env.sample create mode 100644 .gitignore create mode 100644 alembic.ini create mode 100644 database/Base.py create mode 100644 database/Resolution.py create mode 100644 database/__init__.py create mode 100644 main.py create mode 100644 migrations/README create mode 100644 migrations/env.py create mode 100644 migrations/script.py.mako create mode 100644 poetry.lock create mode 100644 pyproject.toml create mode 100644 settings.py create mode 100644 static/resolutions/00_resolutions.txt create mode 100644 static/resolutions/00_resolutions_modified.txt create mode 100644 static/resolutions/01_resolutions_nemesis.txt create mode 100644 static/resolutions/02_resolutions_overlord.txt create mode 100644 static/resolutions/03_resolutions_first_contact_dlc.txt create mode 100644 static/resolutions/04_resolutions_machine_age.txt create mode 100644 tools/__init__.py create mode 100644 tools/cw_parser.py diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..50b93bb --- /dev/null +++ b/.env.sample @@ -0,0 +1 @@ +SQLALCHEMY_URL= \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9d1e8af --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.env +.idea +*.log +image_data +.python-version +install-pyenv-win.ps1 +mod/ +.tool-versions \ No newline at end of file diff --git a/alembic.ini b/alembic.ini new file mode 100644 index 0000000..9e7365e --- /dev/null +++ b/alembic.ini @@ -0,0 +1,119 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +# Use forward slashes (/) also on windows to provide an os agnostic path +script_location = migrations + +# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s +# Uncomment the line below if you want the files to be prepended with date and time +# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file +# for all available tokens +# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s + +# sys.path path, will be prepended to sys.path if present. +# defaults to the current working directory. +prepend_sys_path = . + +# timezone to use when rendering the date within the migration file +# as well as the filename. +# If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library. +# Any required deps can installed by adding `alembic[tz]` to the pip requirements +# string value is passed to ZoneInfo() +# leave blank for localtime +# timezone = + +# max length of characters to apply to the "slug" field +# truncate_slug_length = 40 + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + +# set to 'true' to allow .pyc and .pyo files without +# a source .py file to be detected as revisions in the +# versions/ directory +# sourceless = false + +# version location specification; This defaults +# to migrations/versions. When using multiple version +# directories, initial revisions must be specified with --version-path. +# The path separator used here should be the separator specified by "version_path_separator" below. +# version_locations = %(here)s/bar:%(here)s/bat:migrations/versions + +# version path separator; As mentioned above, this is the character used to split +# version_locations. The default within new alembic.ini files is "os", which uses os.pathsep. +# If this key is omitted entirely, it falls back to the legacy behavior of splitting on spaces and/or commas. +# Valid values for version_path_separator are: +# +# version_path_separator = : +# version_path_separator = ; +# version_path_separator = space +# version_path_separator = newline +# +# Use os.pathsep. Default configuration used for new projects. +version_path_separator = os + +# set to 'true' to search source files recursively +# in each "version_locations" directory +# new in Alembic version 1.10 +# recursive_version_locations = false + +# the output encoding used when revision files +# are written from script.py.mako +# output_encoding = utf-8 + +sqlalchemy.url = driver://user:pass@localhost/dbname + + +[post_write_hooks] +# post_write_hooks defines scripts or Python functions that are run +# on newly generated revision scripts. See the documentation for further +# detail and examples + +# format using "black" - use the console_scripts runner, against the "black" entrypoint +# hooks = black +# black.type = console_scripts +# black.entrypoint = black +# black.options = -l 79 REVISION_SCRIPT_FILENAME + +# lint with attempts to fix using "ruff" - use the exec runner, execute a binary +# hooks = ruff +# ruff.type = exec +# ruff.executable = %(here)s/.venv/bin/ruff +# ruff.options = check --fix REVISION_SCRIPT_FILENAME + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARNING +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARNING +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/database/Base.py b/database/Base.py new file mode 100644 index 0000000..0bd1047 --- /dev/null +++ b/database/Base.py @@ -0,0 +1,84 @@ +from datetime import datetime +from typing import Optional, Sequence, Self +from uuid import UUID + +from sqlalchemy import TypeDecorator, event, select +from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession, AsyncAttrs +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column +import sqlalchemy as sa +from sqlalchemy.sql.base import ExecutableOption +from sqlalchemy.sql._typing import _ColumnExpressionArgument + +from settings import settings + +engine = create_async_engine( + settings.SQLALCHEMY_URL +) + +AsyncSessionLocal = async_sessionmaker( + autocommit=False, autoflush=False, bind=engine, expire_on_commit=False +) + +class Base(AsyncAttrs, DeclarativeBase): + id: Mapped[int] = mapped_column(sa.Integer, primary_key=True, autoincrement=True, nullable=False) + + created_at: Mapped[datetime] = mapped_column(sa.DateTime, nullable=False, default=datetime.now()) + modified_at: Mapped[datetime] = mapped_column(sa.DateTime, nullable=False, default=datetime.now()) + + @classmethod + async def find_all( + cls, + session: AsyncSession, + options: Optional[list[ExecutableOption]] = None, + filter: Optional[list[_ColumnExpressionArgument[bool]]] = None, + order_by: Optional[list[_ColumnExpressionArgument[Self]]] = None, + limit: Optional[int] = None, + **kwargs + ) -> Sequence[Self]: + stmt = select(cls) + + if options: + stmt = stmt.options(*options) + + if filter: + stmt = stmt.filter(*filter) + + if order_by: + stmt = stmt.order_by(*order_by) + + if limit: + stmt = stmt.limit(limit) + + stmt = stmt.filter_by(**kwargs) + + return (await session.execute(stmt)).unique().scalars().all() + + @classmethod + async def find_one( + cls, + session: AsyncSession, + options: Optional[list[ExecutableOption]] = None, + filter: Optional[list[_ColumnExpressionArgument[bool]]] = None, + order_by: Optional[list[_ColumnExpressionArgument[Self]]] = None, + limit: Optional[int] = None, + **kwargs + ) -> Self: + stmt = select(cls) + + if options: + stmt = stmt.options(*options) + + if filter: + stmt = stmt.filter(*filter) + + if order_by: + stmt = stmt.order_by(*order_by) + + stmt = stmt.filter_by(**kwargs) + + return (await session.execute(stmt)).unique().scalar_one() + + +@event.listens_for(Base, "before_update", propagate=True) +def update_modified_at(mapper, connection, target): + target.modified_at = datetime.now() \ No newline at end of file diff --git a/database/Resolution.py b/database/Resolution.py new file mode 100644 index 0000000..8c5baf5 --- /dev/null +++ b/database/Resolution.py @@ -0,0 +1,10 @@ +from sqlalchemy.orm import mapped_column, Mapped +import sqlalchemy as sa + +from database.Base import Base + + +class ResolutionDB(Base): + __tablename__ = "resolution" + + name: Mapped[str] = mapped_column("name", sa.Text, nullable=False, index=True) \ No newline at end of file diff --git a/database/__init__.py b/database/__init__.py new file mode 100644 index 0000000..0a0195a --- /dev/null +++ b/database/__init__.py @@ -0,0 +1 @@ +from .Resolution import ResolutionDB \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..6d7c6d9 --- /dev/null +++ b/main.py @@ -0,0 +1,13 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} + + +@app.get("/hello/{name}") +async def say_hello(name: str): + return {"message": f"Hello {name}"} diff --git a/migrations/README b/migrations/README new file mode 100644 index 0000000..98e4f9c --- /dev/null +++ b/migrations/README @@ -0,0 +1 @@ +Generic single-database configuration. \ No newline at end of file diff --git a/migrations/env.py b/migrations/env.py new file mode 100644 index 0000000..3118be7 --- /dev/null +++ b/migrations/env.py @@ -0,0 +1,79 @@ +import asyncio +from logging.config import fileConfig + +from sqlalchemy import engine_from_config +from sqlalchemy import pool + +from alembic import context + +from database.Base import engine, Base + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +target_metadata = Base.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline() -> None: + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + literal_binds=True, + dialect_opts={"paramstyle": "named"}, + ) + + with context.begin_transaction(): + context.run_migrations() + +def connect(connection): + context.configure( + connection=connection, target_metadata=target_metadata + ) + + with context.begin_transaction(): + context.run_migrations() + +async def run_migrations_online() -> None: + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + connectable = engine + + async with connectable.connect() as connection: + await connection.run_sync(connect) + + +if context.is_offline_mode(): + run_migrations_offline() +else: + asyncio.run(run_migrations_online()) diff --git a/migrations/script.py.mako b/migrations/script.py.mako new file mode 100644 index 0000000..480b130 --- /dev/null +++ b/migrations/script.py.mako @@ -0,0 +1,28 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision: str = ${repr(up_revision)} +down_revision: Union[str, None] = ${repr(down_revision)} +branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} +depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} + + +def upgrade() -> None: + """Upgrade schema.""" + ${upgrades if upgrades else "pass"} + + +def downgrade() -> None: + """Downgrade schema.""" + ${downgrades if downgrades else "pass"} diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..386510a --- /dev/null +++ b/poetry.lock @@ -0,0 +1,870 @@ +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. + +[[package]] +name = "alembic" +version = "1.15.2" +description = "A database migration tool for SQLAlchemy." +optional = false +python-versions = ">=3.9" +files = [ + {file = "alembic-1.15.2-py3-none-any.whl", hash = "sha256:2e76bd916d547f6900ec4bb5a90aeac1485d2c92536923d0b138c02b126edc53"}, + {file = "alembic-1.15.2.tar.gz", hash = "sha256:1c72391bbdeffccfe317eefba686cb9a3c078005478885413b95c3b26c57a8a7"}, +] + +[package.dependencies] +Mako = "*" +SQLAlchemy = ">=1.4.0" +typing-extensions = ">=4.12" + +[package.extras] +tz = ["tzdata"] + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.9.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, + {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "asyncpg" +version = "0.30.0" +description = "An asyncio PostgreSQL driver" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "asyncpg-0.30.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfb4dd5ae0699bad2b233672c8fc5ccbd9ad24b89afded02341786887e37927e"}, + {file = "asyncpg-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc1f62c792752a49f88b7e6f774c26077091b44caceb1983509edc18a2222ec0"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3152fef2e265c9c24eec4ee3d22b4f4d2703d30614b0b6753e9ed4115c8a146f"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7255812ac85099a0e1ffb81b10dc477b9973345793776b128a23e60148dd1af"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:578445f09f45d1ad7abddbff2a3c7f7c291738fdae0abffbeb737d3fc3ab8b75"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c42f6bb65a277ce4d93f3fba46b91a265631c8df7250592dd4f11f8b0152150f"}, + {file = "asyncpg-0.30.0-cp310-cp310-win32.whl", hash = "sha256:aa403147d3e07a267ada2ae34dfc9324e67ccc4cdca35261c8c22792ba2b10cf"}, + {file = "asyncpg-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb622c94db4e13137c4c7f98834185049cc50ee01d8f657ef898b6407c7b9c50"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e0511ad3dec5f6b4f7a9e063591d407eee66b88c14e2ea636f187da1dcfff6a"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:915aeb9f79316b43c3207363af12d0e6fd10776641a7de8a01212afd95bdf0ed"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c198a00cce9506fcd0bf219a799f38ac7a237745e1d27f0e1f66d3707c84a5a"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3326e6d7381799e9735ca2ec9fd7be4d5fef5dcbc3cb555d8a463d8460607956"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51da377487e249e35bd0859661f6ee2b81db11ad1f4fc036194bc9cb2ead5056"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc6d84136f9c4d24d358f3b02be4b6ba358abd09f80737d1ac7c444f36108454"}, + {file = "asyncpg-0.30.0-cp311-cp311-win32.whl", hash = "sha256:574156480df14f64c2d76450a3f3aaaf26105869cad3865041156b38459e935d"}, + {file = "asyncpg-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:3356637f0bd830407b5597317b3cb3571387ae52ddc3bca6233682be88bbbc1f"}, + {file = "asyncpg-0.30.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c902a60b52e506d38d7e80e0dd5399f657220f24635fee368117b8b5fce1142e"}, + {file = "asyncpg-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aca1548e43bbb9f0f627a04666fedaca23db0a31a84136ad1f868cb15deb6e3a"}, + {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c2a2ef565400234a633da0eafdce27e843836256d40705d83ab7ec42074efb3"}, + {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1292b84ee06ac8a2ad8e51c7475aa309245874b61333d97411aab835c4a2f737"}, + {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0f5712350388d0cd0615caec629ad53c81e506b1abaaf8d14c93f54b35e3595a"}, + {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db9891e2d76e6f425746c5d2da01921e9a16b5a71a1c905b13f30e12a257c4af"}, + {file = "asyncpg-0.30.0-cp312-cp312-win32.whl", hash = "sha256:68d71a1be3d83d0570049cd1654a9bdfe506e794ecc98ad0873304a9f35e411e"}, + {file = "asyncpg-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:9a0292c6af5c500523949155ec17b7fe01a00ace33b68a476d6b5059f9630305"}, + {file = "asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70"}, + {file = "asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3"}, + {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33"}, + {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4"}, + {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4"}, + {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba"}, + {file = "asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590"}, + {file = "asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e"}, + {file = "asyncpg-0.30.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:29ff1fc8b5bf724273782ff8b4f57b0f8220a1b2324184846b39d1ab4122031d"}, + {file = "asyncpg-0.30.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64e899bce0600871b55368b8483e5e3e7f1860c9482e7f12e0a771e747988168"}, + {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b290f4726a887f75dcd1b3006f484252db37602313f806e9ffc4e5996cfe5cb"}, + {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f86b0e2cd3f1249d6fe6fd6cfe0cd4538ba994e2d8249c0491925629b9104d0f"}, + {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:393af4e3214c8fa4c7b86da6364384c0d1b3298d45803375572f415b6f673f38"}, + {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fd4406d09208d5b4a14db9a9dbb311b6d7aeeab57bded7ed2f8ea41aeef39b34"}, + {file = "asyncpg-0.30.0-cp38-cp38-win32.whl", hash = "sha256:0b448f0150e1c3b96cb0438a0d0aa4871f1472e58de14a3ec320dbb2798fb0d4"}, + {file = "asyncpg-0.30.0-cp38-cp38-win_amd64.whl", hash = "sha256:f23b836dd90bea21104f69547923a02b167d999ce053f3d502081acea2fba15b"}, + {file = "asyncpg-0.30.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f4e83f067b35ab5e6371f8a4c93296e0439857b4569850b178a01385e82e9ad"}, + {file = "asyncpg-0.30.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5df69d55add4efcd25ea2a3b02025b669a285b767bfbf06e356d68dbce4234ff"}, + {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3479a0d9a852c7c84e822c073622baca862d1217b10a02dd57ee4a7a081f708"}, + {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26683d3b9a62836fad771a18ecf4659a30f348a561279d6227dab96182f46144"}, + {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1b982daf2441a0ed314bd10817f1606f1c28b1136abd9e4f11335358c2c631cb"}, + {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1c06a3a50d014b303e5f6fc1e5f95eb28d2cee89cf58384b700da621e5d5e547"}, + {file = "asyncpg-0.30.0-cp39-cp39-win32.whl", hash = "sha256:1b11a555a198b08f5c4baa8f8231c74a366d190755aa4f99aacec5970afe929a"}, + {file = "asyncpg-0.30.0-cp39-cp39-win_amd64.whl", hash = "sha256:8b684a3c858a83cd876f05958823b68e8d14ec01bb0c0d14a6704c5bf9711773"}, + {file = "asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851"}, +] + +[package.extras] +docs = ["Sphinx (>=8.1.3,<8.2.0)", "sphinx-rtd-theme (>=1.2.2)"] +gssauth = ["gssapi", "sspilib"] +test = ["distro (>=1.9.0,<1.10.0)", "flake8 (>=6.1,<7.0)", "flake8-pyi (>=24.1.0,<24.2.0)", "gssapi", "k5test", "mypy (>=1.8.0,<1.9.0)", "sspilib", "uvloop (>=0.15.3)"] + +[[package]] +name = "bcrypt" +version = "4.3.0" +description = "Modern password hashing for your software and your servers" +optional = false +python-versions = ">=3.8" +files = [ + {file = "bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd"}, + {file = "bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af"}, + {file = "bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231"}, + {file = "bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c"}, + {file = "bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f"}, + {file = "bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d"}, + {file = "bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4"}, + {file = "bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669"}, + {file = "bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb"}, + {file = "bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d"}, + {file = "bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f"}, + {file = "bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732"}, + {file = "bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef"}, + {file = "bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304"}, + {file = "bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51"}, + {file = "bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62"}, + {file = "bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe"}, + {file = "bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0"}, + {file = "bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f"}, + {file = "bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23"}, + {file = "bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe"}, + {file = "bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505"}, + {file = "bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a"}, + {file = "bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b"}, + {file = "bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c950d682f0952bafcceaf709761da0a32a942272fad381081b51096ffa46cea1"}, + {file = "bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:107d53b5c67e0bbc3f03ebf5b030e0403d24dda980f8e244795335ba7b4a027d"}, + {file = "bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b693dbb82b3c27a1604a3dff5bfc5418a7e6a781bb795288141e5f80cf3a3492"}, + {file = "bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:b6354d3760fcd31994a14c89659dee887f1351a06e5dac3c1142307172a79f90"}, + {file = "bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a839320bf27d474e52ef8cb16449bb2ce0ba03ca9f44daba6d93fa1d8828e48a"}, + {file = "bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bdc6a24e754a555d7316fa4774e64c6c3997d27ed2d1964d55920c7c227bc4ce"}, + {file = "bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:55a935b8e9a1d2def0626c4269db3fcd26728cbff1e84f0341465c31c4ee56d8"}, + {file = "bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:57967b7a28d855313a963aaea51bf6df89f833db4320da458e5b3c5ab6d4c938"}, + {file = "bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18"}, +] + +[package.extras] +tests = ["pytest (>=3.2.1,!=3.3.0)"] +typecheck = ["mypy"] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "fastapi" +version = "0.115.12" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, + {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, +] + +[package.dependencies] +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.40.0,<0.47.0" +typing-extensions = ">=4.8.0" + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "mako" +version = "1.3.10" +description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59"}, + {file = "mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28"}, +] + +[package.dependencies] +MarkupSafe = ">=0.9.2" + +[package.extras] +babel = ["Babel"] +lingua = ["lingua"] +testing = ["pytest"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mypy" +version = "1.15.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, + {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, + {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, + {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, + {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, + {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, + {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, + {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, + {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, + {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, + {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, + {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, + {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, + {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, + {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, + {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, + {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, + {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, +] + +[package.dependencies] +mypy_extensions = ">=1.0.0" +typing_extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "passlib" +version = "1.7.4" +description = "comprehensive password hashing framework supporting over 30 schemes" +optional = false +python-versions = "*" +files = [ + {file = "passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1"}, + {file = "passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04"}, +] + +[package.dependencies] +bcrypt = {version = ">=3.1.0", optional = true, markers = "extra == \"bcrypt\""} + +[package.extras] +argon2 = ["argon2-cffi (>=18.2.0)"] +bcrypt = ["bcrypt (>=3.1.0)"] +build-docs = ["cloud-sptheme (>=1.10.1)", "sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)"] +totp = ["cryptography"] + +[[package]] +name = "pydantic" +version = "2.11.3" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pydantic-2.11.3-py3-none-any.whl", hash = "sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"}, + {file = "pydantic-2.11.3.tar.gz", hash = "sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.33.1" +typing-extensions = ">=4.12.2" +typing-inspection = ">=0.4.0" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.33.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, + {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, + {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, + {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, + {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, + {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, + {file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, + {file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, + {file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, + {file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, + {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, + {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, + {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, + {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, + {file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, + {file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, + {file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, + {file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, + {file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, + {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, + {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, + {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, + {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, + {file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, + {file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, + {file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, + {file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, + {file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, + {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, + {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, + {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, + {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, + {file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, + {file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, + {file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, + {file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, + {file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, + {file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, + {file = "pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb"}, + {file = "pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5"}, + {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6"}, + {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d"}, + {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96"}, + {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599"}, + {file = "pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5"}, + {file = "pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, + {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, + {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672"}, + {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3"}, + {file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-settings" +version = "2.8.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c"}, + {file = "pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "python-dotenv" +version = "1.1.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.9" +files = [ + {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, + {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "ruff" +version = "0.11.5" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.11.5-py3-none-linux_armv6l.whl", hash = "sha256:2561294e108eb648e50f210671cc56aee590fb6167b594144401532138c66c7b"}, + {file = "ruff-0.11.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac12884b9e005c12d0bd121f56ccf8033e1614f736f766c118ad60780882a077"}, + {file = "ruff-0.11.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:4bfd80a6ec559a5eeb96c33f832418bf0fb96752de0539905cf7b0cc1d31d779"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0947c0a1afa75dcb5db4b34b070ec2bccee869d40e6cc8ab25aca11a7d527794"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad871ff74b5ec9caa66cb725b85d4ef89b53f8170f47c3406e32ef040400b038"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6cf918390cfe46d240732d4d72fa6e18e528ca1f60e318a10835cf2fa3dc19f"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:56145ee1478582f61c08f21076dc59153310d606ad663acc00ea3ab5b2125f82"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e5f66f8f1e8c9fc594cbd66fbc5f246a8d91f916cb9667e80208663ec3728304"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80b4df4d335a80315ab9afc81ed1cff62be112bd165e162b5eed8ac55bfc8470"}, + {file = "ruff-0.11.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3068befab73620b8a0cc2431bd46b3cd619bc17d6f7695a3e1bb166b652c382a"}, + {file = "ruff-0.11.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f5da2e710a9641828e09aa98b92c9ebbc60518fdf3921241326ca3e8f8e55b8b"}, + {file = "ruff-0.11.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ef39f19cb8ec98cbc762344921e216f3857a06c47412030374fffd413fb8fd3a"}, + {file = "ruff-0.11.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b2a7cedf47244f431fd11aa5a7e2806dda2e0c365873bda7834e8f7d785ae159"}, + {file = "ruff-0.11.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:81be52e7519f3d1a0beadcf8e974715b2dfc808ae8ec729ecfc79bddf8dbb783"}, + {file = "ruff-0.11.5-py3-none-win32.whl", hash = "sha256:e268da7b40f56e3eca571508a7e567e794f9bfcc0f412c4b607931d3af9c4afe"}, + {file = "ruff-0.11.5-py3-none-win_amd64.whl", hash = "sha256:6c6dc38af3cfe2863213ea25b6dc616d679205732dc0fb673356c2d69608f800"}, + {file = "ruff-0.11.5-py3-none-win_arm64.whl", hash = "sha256:67e241b4314f4eacf14a601d586026a962f4002a475aa702c69980a38087aa4e"}, + {file = "ruff-0.11.5.tar.gz", hash = "sha256:cae2e2439cb88853e421901ec040a758960b576126dab520fa08e9de431d1bef"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.40" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.40-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bece9527f5a98466d67fb5d34dc560c4da964240d8b09024bb21c1246545e04e"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:8bb131ffd2165fae48162c7bbd0d97c84ab961deea9b8bab16366543deeab625"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:9408fd453d5f8990405cc9def9af46bfbe3183e6110401b407c2d073c3388f47"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-win32.whl", hash = "sha256:00a494ea6f42a44c326477b5bee4e0fc75f6a80c01570a32b57e89cf0fbef85a"}, + {file = "SQLAlchemy-2.0.40-cp37-cp37m-win_amd64.whl", hash = "sha256:c7b927155112ac858357ccf9d255dd8c044fd9ad2dc6ce4c4149527c901fa4c3"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1ea21bef99c703f44444ad29c2c1b6bd55d202750b6de8e06a955380f4725d7"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:afe63b208153f3a7a2d1a5b9df452b0673082588933e54e7c8aac457cf35e758"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8aae085ea549a1eddbc9298b113cffb75e514eadbb542133dd2b99b5fb3b6af"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ea9181284754d37db15156eb7be09c86e16e50fbe77610e9e7bee09291771a1"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5434223b795be5c5ef8244e5ac98056e290d3a99bdcc539b916e282b160dda00"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15d08d5ef1b779af6a0909b97be6c1fd4298057504eb6461be88bd1696cb438e"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-win32.whl", hash = "sha256:cd2f75598ae70bcfca9117d9e51a3b06fe29edd972fdd7fd57cc97b4dbf3b08a"}, + {file = "sqlalchemy-2.0.40-cp310-cp310-win_amd64.whl", hash = "sha256:2cbafc8d39ff1abdfdda96435f38fab141892dc759a2165947d1a8fffa7ef596"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f6bacab7514de6146a1976bc56e1545bee247242fab030b89e5f70336fc0003e"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5654d1ac34e922b6c5711631f2da497d3a7bffd6f9f87ac23b35feea56098011"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35904d63412db21088739510216e9349e335f142ce4a04b69e2528020ee19ed4"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7a80ed86d6aaacb8160a1caef6680d4ddd03c944d985aecee940d168c411d1"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:519624685a51525ddaa7d8ba8265a1540442a2ec71476f0e75241eb8263d6f51"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2ee5f9999a5b0e9689bed96e60ee53c3384f1a05c2dd8068cc2e8361b0df5b7a"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-win32.whl", hash = "sha256:c0cae71e20e3c02c52f6b9e9722bca70e4a90a466d59477822739dc31ac18b4b"}, + {file = "sqlalchemy-2.0.40-cp311-cp311-win_amd64.whl", hash = "sha256:574aea2c54d8f1dd1699449f332c7d9b71c339e04ae50163a3eb5ce4c4325ee4"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9d3b31d0a1c44b74d3ae27a3de422dfccd2b8f0b75e51ecb2faa2bf65ab1ba0d"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:37f7a0f506cf78c80450ed1e816978643d3969f99c4ac6b01104a6fe95c5490a"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bb933a650323e476a2e4fbef8997a10d0003d4da996aad3fd7873e962fdde4d"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959738971b4745eea16f818a2cd086fb35081383b078272c35ece2b07012716"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:110179728e442dae85dd39591beb74072ae4ad55a44eda2acc6ec98ead80d5f2"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8040680eaacdce4d635f12c55c714f3d4c7f57da2bc47a01229d115bd319191"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-win32.whl", hash = "sha256:650490653b110905c10adac69408380688cefc1f536a137d0d69aca1069dc1d1"}, + {file = "sqlalchemy-2.0.40-cp312-cp312-win_amd64.whl", hash = "sha256:2be94d75ee06548d2fc591a3513422b873490efb124048f50556369a834853b0"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:915866fd50dd868fdcc18d61d8258db1bf9ed7fbd6dfec960ba43365952f3b01"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a4c5a2905a9ccdc67a8963e24abd2f7afcd4348829412483695c59e0af9a705"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55028d7a3ebdf7ace492fab9895cbc5270153f75442a0472d8516e03159ab364"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cfedff6878b0e0d1d0a50666a817ecd85051d12d56b43d9d425455e608b5ba0"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb19e30fdae77d357ce92192a3504579abe48a66877f476880238a962e5b96db"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16d325ea898f74b26ffcd1cf8c593b0beed8714f0317df2bed0d8d1de05a8f26"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-win32.whl", hash = "sha256:a669cbe5be3c63f75bcbee0b266779706f1a54bcb1000f302685b87d1b8c1500"}, + {file = "sqlalchemy-2.0.40-cp313-cp313-win_amd64.whl", hash = "sha256:641ee2e0834812d657862f3a7de95e0048bdcb6c55496f39c6fa3d435f6ac6ad"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:50f5885bbed261fc97e2e66c5156244f9704083a674b8d17f24c72217d29baf5"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf0e99cdb600eabcd1d65cdba0d3c91418fee21c4aa1d28db47d095b1064a7d8"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe147fcd85aaed53ce90645c91ed5fca0cc88a797314c70dfd9d35925bd5d106"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf7cee56bd552385c1ee39af360772fbfc2f43be005c78d1140204ad6148438"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4aeb939bcac234b88e2d25d5381655e8353fe06b4e50b1c55ecffe56951d18c2"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c268b5100cfeaa222c40f55e169d484efa1384b44bf9ca415eae6d556f02cb08"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-win32.whl", hash = "sha256:46628ebcec4f23a1584fb52f2abe12ddb00f3bb3b7b337618b80fc1b51177aff"}, + {file = "sqlalchemy-2.0.40-cp38-cp38-win_amd64.whl", hash = "sha256:7e0505719939e52a7b0c65d20e84a6044eb3712bb6f239c6b1db77ba8e173a37"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c884de19528e0fcd9dc34ee94c810581dd6e74aef75437ff17e696c2bfefae3e"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1abb387710283fc5983d8a1209d9696a4eae9db8d7ac94b402981fe2fe2e39ad"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cfa124eda500ba4b0d3afc3e91ea27ed4754e727c7f025f293a22f512bcd4c9"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6b28d303b9d57c17a5164eb1fd2d5119bb6ff4413d5894e74873280483eeb5"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b5a5bbe29c10c5bfd63893747a1bf6f8049df607638c786252cb9243b86b6706"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f0fda83e113bb0fb27dc003685f32a5dcb99c9c4f41f4fa0838ac35265c23b5c"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-win32.whl", hash = "sha256:957f8d85d5e834397ef78a6109550aeb0d27a53b5032f7a57f2451e1adc37e98"}, + {file = "sqlalchemy-2.0.40-cp39-cp39-win_amd64.whl", hash = "sha256:1ffdf9c91428e59744f8e6f98190516f8e1d05eec90e936eb08b257332c5e870"}, + {file = "sqlalchemy-2.0.40-py3-none-any.whl", hash = "sha256:32587e2e1e359276957e6fe5dad089758bc042a971a8a09ae8ecf7a8fe23d07a"}, + {file = "sqlalchemy-2.0.40.tar.gz", hash = "sha256:d827099289c64589418ebbcaead0145cd19f4e3e8a93919a0100247af245fa00"}, +] + +[package.dependencies] +greenlet = {version = ">=1", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (>=1)"] +aioodbc = ["aioodbc", "greenlet (>=1)"] +aiosqlite = ["aiosqlite", "greenlet (>=1)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (>=1)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (>=1)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (>=1)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.46.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +files = [ + {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, + {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "typing-extensions" +version = "4.13.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, + {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, +] + +[[package]] +name = "typing-inspection" +version = "0.4.0" +description = "Runtime typing introspection tools" +optional = false +python-versions = ">=3.9" +files = [ + {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, + {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, +] + +[package.dependencies] +typing-extensions = ">=4.12.0" + +[[package]] +name = "uvicorn" +version = "0.34.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.9" +files = [ + {file = "uvicorn-0.34.1-py3-none-any.whl", hash = "sha256:984c3a8c7ca18ebaad15995ee7401179212c59521e67bfc390c07fa2b8d2e065"}, + {file = "uvicorn-0.34.1.tar.gz", hash = "sha256:af981725fc4b7ffc5cb3b0e9eda6258a90c4b52cb2a83ce567ae0a7ae1757afc"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.13" +content-hash = "919df2fe427cfe0963804f83621e141824a3a813b8ef501518f6ee5ac3c752da" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6b81608 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,26 @@ +[tool.poetry] +name = "galactic-council-api" +version = "0.1.0" +description = "" +authors = ["Jonas Görgen "] +readme = "README.md" +package-mode = false + +[tool.poetry.dependencies] +python = "^3.13" +fastapi = "^0.115.12" +uvicorn = "^0.34.1" +sqlalchemy = "^2.0.40" +pydantic-settings = "^2.8.1" +passlib = {extras = ["bcrypt"], version = "^1.7.4"} +alembic = "^1.15.2" +asyncpg = "^0.30.0" + + +[tool.poetry.group.dev.dependencies] +mypy = "^1.15.0" +ruff = "^0.11.5" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..1d8d697 --- /dev/null +++ b/settings.py @@ -0,0 +1,9 @@ +from pydantic_settings import BaseSettings, SettingsConfigDict + + +class Settings(BaseSettings): + model_config = SettingsConfigDict(env_file=".env", extra="allow") + + SQLALCHEMY_URL: str + +settings = Settings() \ No newline at end of file diff --git a/static/resolutions/00_resolutions.txt b/static/resolutions/00_resolutions.txt new file mode 100644 index 0000000..81add3d --- /dev/null +++ b/static/resolutions/00_resolutions.txt @@ -0,0 +1,14056 @@ +@resolution_weight_hated = 3 +@resolution_weight_disliked = 4 +@resolution_weight_unpopular = 5 +@resolution_weight_normal = 6 +@resolution_weight_popular = 6.5 +@resolution_weight_loved = 7 + +@resolution_cost_t1 = 100 +@resolution_cost_t2 = 150 +@resolution_cost_t3 = 200 +@resolution_cost_t4 = 250 +@resolution_cost_t5 = 300 +@resolution_cost_denounce = 25 + +@resolution_flag_timer = 360 + +# Ecology + +resolution_ecology_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_1_effect_success + + hidden_effect = { + cancel_resolution = "resolution_ecology_recycling_initiatives" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_natural_sanctuaries" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_natural_sanctuaries" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_integrated_gardens" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_integrated_gardens_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_integrated_gardens" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_environmental_control_board" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_environmental_control_board_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_ecology_environmental_control_board" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 10 + in_breach_of = resolution_ecology_environmental_control_board + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_paradise_initiative" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_paradise_initiative_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_ecology_paradise_initiative" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_recycling_initiatives = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + is_active_resolution = "resolution_ecology_natural_sanctuaries" + is_active_resolution = "resolution_ecology_integrated_gardens" + is_active_resolution = "resolution_ecology_environmental_control_board" + is_active_resolution = "resolution_ecology_paradise_initiative" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.6 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + } +} + +resolution_ecology_natural_sanctuaries = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.8 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_integrated_gardens = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_natural_sanctuaries" + } + + effect = { + custom_tooltip = resolution_ecology_integrated_gardens_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.4 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.8 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_environmental_control_board = { + icon = "GFX_resolution_ecological_protection" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + effect = { + custom_tooltip = resolution_ecology_environmental_control_board_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_integrated_gardens" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_terraformed + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + in_breach_of = resolution_ecology_environmental_control_board + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.5 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.5 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_paradise_initiative = { + icon = "GFX_resolution_ecological_protection" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + resolution_ecology_paradise_initiative = 1 + } + + effect = { + custom_tooltip = resolution_ecology_paradise_initiative_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_ecology_environmental_control_board" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_terraformed + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +# SCIENCE! + +resolution_galacticstudies_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_1_effect_success + hidden_effect = { + cancel_resolution = resolution_galacticstudies_cooperative_research_channels + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_2_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_astral_studies_network" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_3_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_advanced_xenostudies" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_astral_studies_network_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 2 + is_xenophile = yes + desc = ethic_xenophile + } + modifier = { + factor = 10 + in_breach_of = resolution_galacticstudies_advanced_xenostudies + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_4_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_advanced_xenostudies_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + modifier = { + factor = 10 + in_breach_of = resolution_galacticstudies_ethical_guideline_refactoring + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_5_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_extradimensional_experimentation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_ethical_guideline_refactoring_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_cooperative_research_channels = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + level = 1 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_astral_studies_network = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_astral_studies_network_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_advanced_xenostudies = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_advanced_xenostudies_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + } + } + country_event = { id = federations.10100 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + modifier = { + factor = 0 + in_breach_of = resolution_galacticstudies_advanced_xenostudies + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_ethical_guideline_refactoring = { + icon = "GFX_resolution_galactic_studies" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_ethical_guideline_refactoring_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + country_event = { id = federations.10110 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + modifier = { + factor = 0 + in_breach_of = resolution_galacticstudies_ethical_guideline_refactoring + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_extradimensional_experimentation = { + icon = "GFX_resolution_galactic_studies" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + resolution_galacticstudies_extradimensional_experimentation = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_extradimensional_experimentation_tooltip + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10020 days = 3 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +# COMMERCE + +resolution_commerce_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_commerce_buzzword_standardization" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_2_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_leveraged_privateering" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_leveraged_privateering" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_3_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_underdeveloped_system_utilization" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_4 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_4_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_holistic_asset_coordination" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_commerce_underdeveloped_system_utilization_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_5 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_5_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_profit_maximization_engines" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_commerce_profit_maximization_engines" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_buzzword_standardization = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + is_active_resolution = "resolution_commerce_leveraged_privateering" + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + is_active_resolution = "resolution_commerce_profit_maximization_engines" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_leveraged_privateering = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_underdeveloped_system_utilization = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + } + + effect = { + custom_tooltip = resolution_commerce_underdeveloped_system_utilization_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_leveraged_privateering" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_holistic_asset_coordination = { + icon = "GFX_resolution_galactic_commerce" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_profit_maximization_engines = { + icon = "GFX_resolution_galactic_commerce" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + resolution_commerce_profit_maximization_engines = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + + +# INDUSTRY + +resolution_industry_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_regulatory_facilitation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_collective_waste_management" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_collective_waste_management" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_building_a_better_tomorrow" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_4 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_environmental_ordinance_waivers" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_5 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_project_cornucopia" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_industry_environmental_ordinance_waivers_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_industry_project_cornucopia" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_regulatory_facilitation = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + is_active_resolution = "resolution_industry_collective_waste_management" + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + is_active_resolution = "resolution_industry_project_cornucopia" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_collective_waste_management = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_building_a_better_tomorrow = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_collective_waste_management" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_environmental_ordinance_waivers = { + icon = "GFX_resolution_industrial_development" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + } + + effect = { + custom_tooltip = resolution_industry_environmental_ordinance_waivers_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_project_cornucopia = { + icon = "GFX_resolution_industrial_development" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + resolution_industry_project_cornucopia = 1 + } + + effect = { + custom_tooltip = resolution_industry_project_cornucopia_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10000 days = 3 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +# THE GREATER GOOD + +resolution_greatergood_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_workers_rights" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_workers_rights" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_five_year_plans" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_five_year_plans" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_five_year_plans + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_greater_than_ourselves" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + custom_tooltip = resolution_greatergood_five_year_plans_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_greater_than_ourselves + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_4 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_balance_in_the_middle" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + custom_tooltip = resolution_greatergood_greater_than_ourselves_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_balance_in_the_middle + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_5 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_universal_prosperity_mandate" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_greatergood_balance_in_the_middle_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_greatergood_universal_prosperity_mandate" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_universal_prosperity_mandate + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_workers_rights = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_greatergood_workers_rights = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_greatergood_workers_rights" + is_active_resolution = "resolution_greatergood_five_year_plans" + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + is_active_resolution = "resolution_greatergood_universal_prosperity_mandate" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_five_year_plans = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_five_year_plans_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + is_gestalt = no + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + country_event = { id = federations.10200 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_workers_rights" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + is_gestalt = no + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_five_year_plans + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_greater_than_ourselves = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_greater_than_ourselves_tooltip + + hidden_effect = { + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10010 days = 15 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_enslaved_species = { + is_sapient = yes + OR = { + has_slavery_type = { type = slavery_normal country = prev } + has_slavery_type = { type = slavery_livestock country = prev } + has_slavery_type = { type = slavery_matrix country = prev } + } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + country_event = { id = federations.10210 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5095 } + } + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5100 } + } + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_five_year_plans" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + any_enslaved_species = { + is_sapient = yes + OR = { + has_slavery_type = { type = slavery_normal country = prev } + has_slavery_type = { type = slavery_livestock country = prev } + has_slavery_type = { type = slavery_matrix country = prev } + } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_greater_than_ourselves + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + OR = { + is_authoritarian = yes + is_gestalt = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_balance_in_the_middle = { + icon = "GFX_resolution_greater_good" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_balance_in_the_middle_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + country_event = { id = federations.10220 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5105 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5110 } + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_slaver_guilds + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_balance_in_the_middle + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + OR = { + is_authoritarian = yes + is_gestalt = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_universal_prosperity_mandate = { + icon = "GFX_resolution_greater_good" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + resolution_greatergood_universal_prosperity_mandate = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_universal_prosperity_mandate_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_good country = prev } + has_living_standard = { type = living_standard_decadent country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + AND = { + is_gestalt = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_ego_assimilation country = prev } + has_living_standard = { type = living_standard_ego_assimilation_psionic country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation_psionic country = prev } + } + } + } + } + } + country_event = { id = federations.10230 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_slaver_guilds + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_good country = prev } + has_living_standard = { type = living_standard_decadent country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_ego_assimilation country = prev } + has_living_standard = { type = living_standard_ego_assimilation_psionic country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation_psionic country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + is_egalitarian = no + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_universal_prosperity_mandate + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + } +} + +# MUTUAL DEFENSE + +resolution_mutualdefense_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_the_readied_shield" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_military_readiness_act" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_mutualdefense_military_readiness_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_military_readiness_act_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_4 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_castigation_proclamation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_enemy_of_my_enemy_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 2 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_5 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_renegade_containment" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_castigation_proclamation_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 3 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_the_readied_shield = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.25 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_military_readiness_act = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 1 + } + + effect = { + custom_tooltip = resolution_mutualdefense_military_readiness_act_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_mutualdefense_military_readiness_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.1 + used_naval_capacity_percent < 0.5 + desc = gal_com_low_naval_capacity_percent + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_enemy_of_my_enemy = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 2 + } + + effect = { + custom_tooltip = resolution_mutualdefense_enemy_of_my_enemy_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_castigation_proclamation = { + icon = "GFX_resolution_mutual_defense" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 3 + } + + effect = { + custom_tooltip = resolution_mutualdefense_castigation_proclamation_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_modifier = resolution_denounced + is_in_breach_of_any = yes + } + desc = gal_com_is_denounced_or_in_breach + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_renegade_containment = { + icon = "GFX_resolution_mutual_defense" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 4 + } + + effect = { + custom_tooltip = resolution_mutualdefense_renegade_containment_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_castigation_denouncement = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + NOT = { is_same_value = from } # don't denounce yourself. + OR = { + is_galactic_community_member = no + is_in_breach_of_any = yes + } + OR = { + opinion_level = { who = from level < neutral } + from = { is_rival = prev } + is_in_breach_of_any = yes + } + } + + effect = { + add_modifier = { modifier = resolution_denounced days = 3600 } + } + + potential = { + has_federations_dlc = yes + OR = { + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + } + + ai_weight = { + base = @resolution_weight_normal + } +} + +resolution_council_denouncement = { + icon = "GFX_resolution_purges" + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + is_galactic_council_established = yes + NOT = { has_global_flag = resolution_council_denouncement_abolished } + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = yes + NOT = { is_same_value = from } # don't denounce yourself. + OR = { + opinion_level = { who = from level < neutral } + from = { is_rival = prev } + is_in_breach_of_any = yes + } + NOT = { has_country_flag = constitutional_immunity } + } + + effect = { + add_modifier = { modifier = resolution_denounced days = 3600 } + } + + allow = { + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + # weaklings are scared of BtC + modifier = { + factor = 5 + has_nemesis = yes + any_playable_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + NOT = { is_same_value = prev } + has_resource = { + type = menace + amount > 1000 + } + relative_power = { + who = prev + category = all + value > equivalent + } + } + desc = gal_com_afraid_of_powerful_crisis + } + + # everyone is scared of BtC + modifier = { + factor = 5 + has_nemesis = yes + any_playable_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + NOT = { is_same_value = prev } + has_resource = { + type = menace + amount > 2000 + } + } + desc = gal_com_afraid_of_crisis + } + + # imagine having a BtC empire next door + modifier = { + factor = 5 + has_nemesis = yes + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + } + desc = gal_com_afraid_of_neighbor_crisis + } + + # imagine your rival having a (not too scary) BtC empire next door - that's good + modifier = { + factor = 0.01 + has_nemesis = yes + NOT = { + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + } + } + any_rival_country = { + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + #has_crisis_level < crisis_level_5 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + #has_crisis_level = crisis_level_5 + } + } + } + desc = gal_com_pleased_to_have_rival_neighboring_crisis + } + } +} + + +# RULES OF WAR + +resolution_rulesofwar_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_guardian_angels" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_reverence_for_life" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_reverence_for_life + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_independent_tribunals" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_reverence_for_life_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_independent_tribunals + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_4 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_last_resort_doctrine" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_last_resort_doctrine + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_5 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_demobilization_initiative" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_rulesofwar_demobilization_initiative" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_demobilization_initiative + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_guardian_angels = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + is_active_resolution = "resolution_rulesofwar_demobilization_initiative" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_reverence_for_life = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_reverence_for_life_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = purge_allowed + } + country_event = { id = federations.10300 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_reverence_for_life + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.2 + has_ai_personality_behaviour = purger + NOT = { has_valid_civic = civic_machine_servitor } + desc = gal_com_purger_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_independent_tribunals = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + } + } + country_event = { id = federations.10310 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_independent_tribunals + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_last_resort_doctrine = { + icon = "GFX_resolution_rules_of_war" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = unrestricted_wars + } + country_event = { id = federations.10320 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = unrestricted_wars + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + has_policy_flag = unrestricted_wars + desc = gal_com_opposing_policy + } + + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_last_resort_doctrine + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.2 + has_ai_personality_behaviour = conqueror + desc = personality_type_conqueror + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_demobilization_initiative = { + icon = "GFX_resolution_rules_of_war" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + resolution_rulesofwar_demobilization_initiative = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_demobilization_initiative_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = economic_policy_military + } + country_event = { id = federations.10330 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = unrestricted_wars + has_policy_flag = purge_allowed + has_policy_flag = economic_policy_military + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_cracker + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + has_ai_personality_behaviour = conqueror + desc = personality_type_conqueror + } + + modifier = { + factor = 0 + has_policy_flag = economic_policy_military + desc = economic_policy_military + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_demobilization_initiative + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +# DIVINITY OF LIFE + +resolution_divinity_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_comfort_the_fallen" + remove_global_flag = galactic_community_resolution_divinity_comfort_the_fallen + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.15 + is_authoritarian = yes + is_spiritualist = no + desc = ethic_authoritarian + } + + modifier = { + factor = 1.15 + is_megacorp = yes + is_spiritualist = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.25 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.95 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + + modifier = { + factor = 0 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + } +} + +resolution_divinity_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_tithe_on_the_soulless" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_right_to_work" + remove_global_flag = galactic_community_resolution_divinity_right_to_work + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_right_to_work" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_silence_the_soulless" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_divinity_silence_the_soulless" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_a_defined_purpose" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_divinity_a_defined_purpose" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + in_breach_of = resolution_divinity_a_defined_purpose + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_comfort_the_fallen = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + } + + effect = { + custom_tooltip = resolution_divinity_comfort_the_fallen_effect + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_global_flag = galactic_community_resolution_divinity_comfort_the_fallen + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + is_active_resolution = "resolution_divinity_right_to_work" + is_active_resolution = "resolution_divinity_silence_the_soulless" + is_active_resolution = "resolution_divinity_a_defined_purpose" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 0.85 + is_authoritarian = yes + is_spiritualist = no + desc = ethic_authoritarian + } + + modifier = { + factor = 0.85 + is_megacorp = yes + is_spiritualist = no + desc = gov_megacorporation + } + + modifier = { + factor = 0.75 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 1.05 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.25 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + + modifier = { + factor = 2 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 2 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + } +} + +resolution_divinity_tithe_on_the_soulless = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_right_to_work = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + } + + effect = { + custom_tooltip = resolution_divinity_right_to_work_effect + hidden_effect = { + set_global_flag = galactic_community_resolution_divinity_right_to_work + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_silence_the_soulless = { + icon = "GFX_resolution_robots_bad" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + } + + triggered_modifier = { + potential = { + is_synthetic_empire = yes + } + modifier = { + resolution_divinity_silence_the_soulless_synthetic_empire_effect = 1 + } + } + + effect = { + custom_tooltip = resolution_divinity_silence_the_soulless_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_global_flag = resolution_with_breach_effect_passed + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_right_to_work" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_synthetic_evolution + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_a_defined_purpose = { + icon = "GFX_resolution_robots_bad" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + resolution_divinity_a_defined_purpose = 1 + } + + effect = { + custom_tooltip = resolution_divinity_a_defined_purpose_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + in_breach_of = resolution_divinity_a_defined_purpose + } + country_event = { id = federations.10340 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_silence_the_soulless" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_country_flag = resolution_breached_synthetic_evolution + AND = { + is_machine_empire = no + has_policy_flag = ai_full_rights + } + AND = { + is_machine_empire = yes + NOT = { has_valid_civic = civic_machine_servitor } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + NOT = { has_valid_civic = civic_machine_servitor } + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + NOT = { has_valid_civic = civic_machine_servitor } + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + NOT = { has_valid_civic = civic_machine_servitor } + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + NOT = { has_valid_civic = civic_machine_servitor } + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 100 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +# GALACTIC REFORMS + +resolution_galacticreforms_abolish_council = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_abolish_council_tooltip + hidden_effect = { + set_council_size = 0 + remove_global_flag = galactic_council_formed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 0 + is_part_of_galactic_council = yes + NOT = { has_ai_personality = democratic_crusaders } + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.5 + is_part_of_galactic_council = no + has_ai_personality = democratic_crusaders + desc = gal_com_not_on_galatic_council + } + + modifier = { + factor = 0.5 + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + desc = gal_com_overlord_on_galatic_council + } + + modifier = { + factor = 0.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.1 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + OR = { + is_gestalt = yes + is_xenophobe = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0.8 + is_xenophile = yes + desc = ethic_xenophile + } + } +} + +resolution_galacticreforms_form_council = { + icon = "GFX_resolution_create_council" + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + NOT = { has_global_flag = galactic_council_formed } + has_galactic_emperor = no + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + } + + allow = { + is_years_since_community_formation >= 20 + } + + effect = { + custom_tooltip = resolution_galacticreforms_form_council_tooltip + hidden_effect = { + set_council_size = 3 + set_council_veto = no + remove_global_flag = resolution_council_denouncement_abolished + set_global_flag = galactic_council_formed + set_global_flag = galactic_community_resolution_passed + + set_global_flag = resolution_with_breach_effect_passed # council denouncement + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.5 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + desc = gal_com_empire_or_overlord_likely_council_candidate + } + + modifier = { + factor = 1.1 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + is_xenophobe = yes + is_egalitarian = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + desc = gal_com_empire_or_overlord_unlikely_council_candidate + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 0.5 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + + modifier = { + factor = 0.5 + has_ai_personality = democratic_crusaders + desc = personality_democratic_crusaders + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + } +} + +resolution_galacticreforms_council_size_1 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 1 + set_global_flag = galactic_council_formed + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + num_council_positions = 2 + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 3 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_empire_or_overlord_highest_rank + } + + modifier = { + factor = 0 + galactic_community_rank = 2 + desc = gal_com_second_rank + } + + modifier = { + factor = 0.8 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + } +} + +resolution_galacticreforms_council_size_2 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 2 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 1 + num_council_positions = 3 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 1 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + num_council_positions = 1 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_alone_on_council_or_overlord + } + + + modifier = { + factor = 3 + + AND = { + num_council_positions = 1 + OR = { + galactic_community_rank = 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 2 + } + } + } + } + + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 3 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 3 + is_egalitarian = yes + } + AND = { + num_council_positions = 1 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 3 + is_authoritarian = yes + } + AND = { + num_council_positions = 1 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + +resolution_galacticreforms_council_size_3 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 3 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 2 + num_council_positions = 4 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 2 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 4 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + AND = { + num_council_positions = 2 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + modifier = { + factor = 3 + + AND = { + num_council_positions = 4 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 3 + AND = { + num_council_positions = 2 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 4 + is_egalitarian = yes + } + AND = { + num_council_positions = 2 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 4 + is_authoritarian = yes + } + AND = { + num_council_positions = 2 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + +resolution_galacticreforms_council_size_4 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 4 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 3 + num_council_positions = 5 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 3 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 5 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + + modifier = { + factor = 0 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + + modifier = { + factor = 3 + + AND = { + num_council_positions = 5 + OR = { + galactic_community_rank <= 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 4 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + + modifier = { + factor = 3 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 5 + is_egalitarian = yes + } + AND = { + num_council_positions = 3 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 5 + is_authoritarian = yes + } + AND = { + num_council_positions = 3 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + + +resolution_galacticreforms_council_size_5 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 5 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + num_council_positions = 4 + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 3 + num_council_positions = 4 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + is_galactic_community_member = yes + desc = gal_com_negative_sentiment + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + } +} + +resolution_galacticreforms_permanent_seat = { + icon = "GFX_resolution_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = no + is_galactic_custodian = no + } + + effect = { + add_permanent_councillor = yes + } + + potential = { + has_federations_dlc = yes + is_galactic_council_established = yes + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +resolution_galacticreforms_revoke_permanent_seat = { + icon = "GFX_resolution_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = yes + is_galactic_custodian = no + } + + effect = { + remove_permanent_councillor = yes + } + + potential = { + has_federations_dlc = yes + is_galactic_council_established = yes + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +resolution_galacticreforms_enable_council_veto = { + icon = "GFX_resolution_remove_council_member" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + + effect = { + set_council_veto = yes + set_global_flag = galactic_council_veto + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + NOT = { has_global_flag = galactic_council_veto } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + } +} + +resolution_galacticreforms_disable_council_veto = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_disable_council_veto_tooltip + hidden_effect = { + set_council_veto = no + remove_global_flag = galactic_council_veto + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + has_global_flag = galactic_council_veto + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_galacticreforms_enable_council_denouncement = { + icon = "GFX_resolution_denounce_empire" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_enable_council_denouncement_tooltip + hidden_effect = { + remove_global_flag = resolution_council_denouncement_abolished + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = resolution_council_denouncement_abolished + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_galacticreforms_disable_council_denouncement = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_disable_council_denouncement_tooltip + hidden_effect = { + set_global_flag = resolution_council_denouncement_abolished + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + NOT = { has_global_flag = resolution_council_denouncement_abolished } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2.5 + has_modifier = resolution_denounced + desc = gal_com_is_denounced + } + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + + +# SANCTIONS + +resolution_sanctions_tech_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_tech_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_tech_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_tech_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_1 = { + icon = "GFX_sanctions_blue" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_tech_1" + is_active_resolution = "resolution_sanctions_tech_2" + is_active_resolution = "resolution_sanctions_tech_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_2 = { + icon = "GFX_sanctions_blue" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_tech_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_3 = { + icon = "GFX_sanctions_blue" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_tech_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_economic_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_economic_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_economic_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_1 = { + icon = "GFX_sanctions_orange" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_economic_1" + is_active_resolution = "resolution_sanctions_economic_2" + is_active_resolution = "resolution_sanctions_economic_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_2 = { + icon = "GFX_sanctions_orange" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_economic_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_3 = { + icon = "GFX_sanctions_orange" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_economic_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_military_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_military_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_military_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_1 = { + icon = "GFX_sanctions_red" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_military_1" + is_active_resolution = "resolution_sanctions_military_2" + is_active_resolution = "resolution_sanctions_military_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_2 = { + icon = "GFX_sanctions_red" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_military_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_3 = { + icon = "GFX_sanctions_red" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_military_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_administrative_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_administrative_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_administrative_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_1 = { + icon = "GFX_sanctions_purple" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_administrative_1" + is_active_resolution = "resolution_sanctions_administrative_2" + is_active_resolution = "resolution_sanctions_administrative_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_2 = { + icon = "GFX_sanctions_purple" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_administrative_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_3 = { + icon = "GFX_sanctions_purple" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_administrative_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +# GALACTIC FOCUS RESOLUTIONS + +resolution_galactic_focus_crisis_prethoryn = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_prethoryn_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_prethoryn + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = ongoing_prethoryn_invasion + NOT = { has_global_flag = galactic_focus_crisis_prethoryn } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = ongoing_prethoryn_invasion + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = swarm + } + desc = gal_com_is_neighboring_swarm + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + is_country_type = swarm + } + } + desc = gal_com_is_not_neighboring_swarm + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = swarm + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_unbidden = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_unbidden_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_unbidden + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = extradimensional_invasion_happened + NOR = { + has_global_flag = extradimensional_invasion_defeated + has_global_flag = galactic_focus_crisis_unbidden + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = extradimensional_invasion_defeated } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + desc = gal_com_neighboring_extradimensional + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + } + desc = gal_com_not_neighboring_extradimensional + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.1 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_contingency = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_contingency_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_contingency + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = ai_invasion_ongoing + NOT = { has_global_flag = galactic_focus_crisis_contingency } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = ai_invasion_ongoing + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = ai_empire + } + desc = gal_com_neighboring_ai_empire + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + is_country_type = ai_empire + } + } + desc = gal_com_not_neighboring_ai_empire + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.2 + OR = { + is_materialist = yes + is_synthetic_empire = yes + } + desc = gal_com_is_materialist_or_synthetic + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = ai_empire + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_greatkhan = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_greatkhan_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_greatkhan + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = great_khan_announcement + NOT = { has_global_flag = great_khan_dead } + NOT = { has_global_flag = galactic_focus_crisis_greatkhan } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = great_khan_dead } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + + any_agreement = { agreement_preset = preset_satrapy } + NOT = { has_country_flag = rebelling_satrapy } + desc = gal_com_satrapy + } + + modifier = { + factor = 10 + + any_agreement = { agreement_preset = preset_satrapy } + has_country_flag = rebelling_satrapy + desc = gal_com_rebelling_satrapy + } + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = awakened_marauders + } + + desc = gal_com_neighboring_awakened_marauders + } + + modifier = { + factor = 1.1 + + any_neighbor_country = { + any_agreement = { agreement_preset = preset_satrapy } + NOT = { has_country_flag = rebelling_satrapy } + } + desc = gal_com_neighboring_satrapy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.2 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = awakened_marauders + any_agreement = { agreement_preset = preset_satrapy } + } + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_nanites = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_nanites_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_nanites + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = gray_goo_crisis_active + NOT = { has_global_flag = galactic_focus_crisis_nanites } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = gray_goo_crisis_active + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = gray_goo + } + desc = gal_com_neighboring_gray_goo + } + + modifier = { + factor = 0.75 + + NOT = { + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.10 + } + } + desc = gal_com_gray_goo_size_smallest + } + + modifier = { + factor = 1.1 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.10 + galaxy_percentage <= 0.20 + } + desc = gal_com_gray_goo_size_small + } + + modifier = { + factor = 1.5 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.20 + galaxy_percentage <= 0.30 + } + desc = gal_com_gray_goo_size_medium + } + + modifier = { + factor = 2 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.30 + galaxy_percentage <= 0.40 + } + desc = gal_com_gray_goo_size_large + } + + modifier = { + factor = 3 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.40 + galaxy_percentage <= 0.50 + } + desc = gal_com_gray_goo_size_very_large + } + + modifier = { + factor = 10 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.50 + } + desc = gal_com_gray_goo_size_huge + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.2 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = gray_goo + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_war_in_heaven_support_side_1 = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_support_side_1_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:SecondSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NAND = { + exists = overlord + has_overlord = event_target:FirstSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + exists = overlord + has_overlord = event_target:FirstSleeper + desc = gal_com_supporting_their_overlord + } + + modifier = { + factor = 0 + exists = overlord + has_overlord = event_target:SecondSleeper + desc = gal_com_supporting_their_overlord + } + } +} + +resolution_galactic_focus_war_in_heaven_support_side_2 = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_support_side_2_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:FirstSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NAND = { + exists = overlord + has_overlord = event_target:SecondSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + exists = overlord + has_overlord = event_target:FirstSleeper + desc = gal_com_supporting_their_overlord + } + + modifier = { + factor = 2 + exists = overlord + has_overlord = event_target:SecondSleeper + desc = gal_com_supporting_their_overlord + } + } +} + +resolution_galactic_focus_war_in_heaven_denounce_both = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + triggered_modifier = { + potential = { + has_global_flag = war_in_heaven_ongoing + OR = { + NOT = { exists = overlord } + overlord = { + NOR = { + is_same_value = event_target:FirstSleeper + is_same_value = event_target:SecondSleeper + } + } + } + } + modifier = { + damage_vs_country_type_awakened_fallen_empire_mult = 0.25 + } + } + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_denounce_both_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + } + + breach = { + has_global_flag = war_in_heaven_ongoing + NOT = { has_country_flag = constitutional_immunity } + exists = overlord + OR = { + has_overlord = event_target:FirstSleeper + has_overlord = event_target:SecondSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + exists = overlord + OR = { + has_overlord = event_target:FirstSleeper + has_overlord = event_target:SecondSleeper + } + desc = gal_com_does_not_have_awakened_overlord + } + } +} + +resolution_tiyanki_conservation_act = { + icon = "GFX_resolution_tiyanki_preservation" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_tiyanki_conservation_act_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + NOT = { + is_active_resolution = "resolution_tiyanki_pest_control" + has_global_flag = tiyanki_extinct + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_tiyanki_conservation_act" + is_active_resolution = "resolution_amoeba_conservation_act" + } + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = tiyanki_extinct } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_killed_tiyanki + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + } +} + +resolution_repeal_tiyanki_conservation_act = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_tiyanki_conservation_act_effect_success + hidden_effect = { + cancel_resolution = "resolution_tiyanki_conservation_act" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_tiyanki_conservation_act" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.5 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + + modifier = { + factor = 10 + in_breach_of = resolution_tiyanki_conservation_act + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_tiyanki_pest_control = { + icon = "GFX_resolution_tiyanki_hunt" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_tiyanki_pest_control_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_global_flag = galactic_community_resolution_passed + country_event = { id = galcom.103 } + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + NOT = { + is_active_resolution = "resolution_tiyanki_conservation_act" + has_global_flag = tiyanki_extinct + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_tiyanki_pest_control" } + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = tiyanki_extinct } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_tiyanki_inside_borders + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.25 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + } +} + +resolution_repeal_tiyanki_pest_control = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_tiyanki_pest_control_effect_success + hidden_effect = { + cancel_resolution = "resolution_tiyanki_pest_control" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_tiyanki_pest_control" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 10 + in_breach_of = resolution_tiyanki_pest_control + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_amoeba_conservation_act = { + icon = "GFX_resolution_tiyanki_preservation" + + potential = { + has_federations_dlc = yes + has_modifier = pacified_amoebas + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + effect = { + custom_tooltip = resolution_amoeba_conservation_act_tooltip + hidden_effect = { + every_country = { + limit = { + is_galactic_community_member = yes + NOT = { has_modifier = pacified_amoebas } + } + country_event = { id = galactic_features.505 } + } + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = resolution_tiyanki_conservation_act + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_amoeba_conservation_act" } + } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NOT = { has_modifier = pacified_amoebas } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + } +} + +resolution_repeal_amoeba_conservation_act = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_amoeba_conservation_act_effect_success + hidden_effect = { + cancel_resolution = resolution_amoeba_conservation_act + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_amoeba_conservation_act" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.75 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.25 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 10 + in_breach_of = resolution_amoeba_conservation_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + } +} + + +# Galactic Market Resolutions +resolution_galactic_market_form = { + icon = "GFX_resolution_form_galactic_market" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no # therefore, scope = proposing country + + effect = { + custom_tooltip = resolution_galactic_market_form_effect_success + hidden_effect = { + # Start the Forming the Market event chain + country_event = { id = action.96 } + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + modifier = { + country_resource_max_add = 10000 + } + + potential = { + NOR = { + has_global_flag = galactic_market_founded + has_global_flag = ongoing_market_nomination + } + + is_gestalt = no + is_homicidal = no + count_relation = { + limit = { + is_country_type = default + is_homicidal = no + } + count >= 3 + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 1.25 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.8 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + years_passed > 50 + desc = gal_com_years_passed + } + + modifier = { + factor = 2 + years_passed > 100 + desc = gal_com_years_passed + } + + modifier = { + factor = 2 + years_passed > 150 + desc = gal_com_years_passed + } + } +} + +resolution_galactic_market_ban_sentient_organic_slave_trade = { + icon = "GFX_resolution_galactic_market_slave_trade" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + effect = { + custom_tooltip = resolution_galactic_market_ban_sentient_organic_slave_trade_effect_success + hidden_effect = { + set_global_flag = organic_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5115 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5120 } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + NOT = { + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + has_global_flag = organic_slave_trade_banned_flag + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_repeal_sentient_organic_slave_trade = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_repeal_sentient_organic_slave_trade_effect_success + hidden_effect = { + remove_global_flag = organic_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = organic_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_ban_sentient_slave_trade = { + icon = "GFX_resolution_galactic_market_slave_trade" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_ban_sentient_slave_trade_effect_success + hidden_effect = { + set_global_flag = sentient_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5125 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5130 } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = organic_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_allow_sentient_slave_trade = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_allow_sentient_slave_trade_effect_success + hidden_effect = { + remove_global_flag = sentient_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5130 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = sentient_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.25 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 2 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_relocate = { + icon = "GFX_resolution_relocate_galactic_market" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_galactic_market_relocate_trigger_fail" + NOT = { + has_global_flag = "resolution_galactic_market_relocated_recently" + } + } + } + + effect = { + custom_tooltip = resolution_galactic_market_relocate_effect_success + hidden_effect = { + country_event = { id = galcom.64 } + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + + set_timed_global_flag = { flag = resolution_galactic_market_relocated_recently days = 18000 } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + NOT = { + has_global_flag = ongoing_market_relocation_nomination + } + NOT = { has_modifier = galactic_market_founder } + is_gestalt = no + is_homicidal = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + has_modifier = galactic_market_founder + desc = gal_com_is_galactic_market_founder + } + + modifier = { + factor = 0 + any_federation_ally = { + has_modifier = galactic_market_founder + } + desc = gal_com_federation_ally_is_galactic_market_founder + } + + modifier = { + factor = 0.5 + is_gestalt = no + has_resource = { type = influence amount < 400 } + desc = gal_com_low_influence + } + + modifier = { + factor = 1.5 + is_gestalt = no + has_resource = { type = influence amount > 700 } + desc = gal_com_high_influence + } + + modifier = { + factor = 2 + has_authority = auth_corporate + NOT = { has_modifier = galactic_market_founder } + desc = gal_com_is_not_galactic_market_founder + } + + modifier = { + factor = 1.25 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + NOT = { has_modifier = galactic_market_founder } + desc = gal_com_trader_ai_personality + } + } +} + +#POLITICS TRADITIONS RESOLUTION + +resolution_community_champions = { + icon = "GFX_resolution_community_champions" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + triggered_modifier = { + potential = { + is_galactic_custodian = no + is_galactic_emperor = no + is_part_of_galactic_council = yes + } + modifier = { + community_champion_counselor = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_custodian = yes + } + modifier = { + community_champion_custodian = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_emperor = yes + } + modifier = { + community_champion_emperor = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_custodian = no + is_galactic_emperor = no + is_part_of_galactic_council = no + } + modifier = { + community_champion_regular = 1 + } + } + + effect = { + custom_tooltip = resolution_community_champions_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_community_champions days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_community_champions days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { + is_active_resolution = resolution_community_champions + } + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + } +} + +resolution_constitutional_immunity = { + icon = "GFX_resolution_constitutional_immunity" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = yes + + valid_target = { + is_same_value = from + NOT = { has_country_flag = constitutional_immunity } + } + + effect = { + custom_tooltip = resolution_constitutional_immunity_tooltip + hidden_effect = { + set_country_flag = constitutional_immunity + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + fail_text = "immunity_already_active" + NOT = { + any_country = { + has_country_flag = constitutional_immunity + } + } + } + } + + ai_weight = { + base = @resolution_weight_hated + } +} + +resolution_development_aides = { + icon = "GFX_resolution_development_aides" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + triggered_modifier = { + potential = { + is_part_of_galactic_council = yes + } + modifier = { + development_aides_counselor = 1 + } + } + + triggered_modifier = { + potential = { + is_part_of_galactic_council = no + } + modifier = { + development_aides_regular = 1 + } + } + + effect = { + custom_tooltip = resolution_development_aides_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_development_aides days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_development_aides days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + text = "resolution_already_active" + } + NOT = { + is_active_resolution = resolution_development_aides + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + + modifier = { + factor = 10 + is_part_of_galactic_council = no + OR = { + has_deficit = minerals + has_deficit = energy + has_deficit = food + } + desc = unstable_economy + } + } +} + +resolution_galactic_threats_committee = { + icon = "GFX_resolution_galactic_threats_committee" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = no + + modifier = { + description = resolution_galactic_threats_committee_modifier_desc + planet_researchers_upkeep_mult = 0.1 + damage_vs_country_type_synth_queen_mult = 0.2 + damage_vs_country_type_swarm_mult = 0.2 + damage_vs_country_type_extradimensional_mult = 0.2 + damage_vs_country_type_extradimensional_2_mult = 0.2 + damage_vs_country_type_extradimensional_3_mult = 0.2 + damage_vs_country_type_ai_empire_mult = 0.2 + damage_vs_country_type_gray_goo_mult = 0.2 + damage_vs_player_crisis_mult = 0.2 + #Also makes the crisis come sooner in crisis_trigger.1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galactic_threats_commitee days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galactic_threats_commitee days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + text = "resolution_already_active" + } + NOT = { + is_active_resolution = resolution_galactic_threats_committee + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + } +} + +resolution_community_champions_repeal = { + icon = "GFX_resolution_community_champions" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_community_champions" + set_timed_country_flag = { flag = galactic_community_resolution_passed_community_champions_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_community_champions_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_community_champions + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_constitutional_immunity_repeal = { + icon = "GFX_resolution_constitutional_immunity" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = yes + harmful = yes + valid_target = { + has_country_flag = constitutional_immunity + } + + effect = { + remove_country_flag = constitutional_immunity + } + + ai_weight = { + base = @resolution_weight_popular + } +} + +resolution_development_aides_repeal = { + icon = "GFX_resolution_development_aides" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_development_aides" + set_timed_country_flag = { flag = galactic_community_resolution_passed_development_aides_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_development_aides_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_development_aides + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.9 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 2 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + + modifier = { + factor = 0.1 + is_part_of_galactic_council = no + OR = { + has_deficit = minerals + has_deficit = energy + has_deficit = food + } + desc = unstable_economy + } + } +} + +resolution_galactic_threats_committee_repeal = { + icon = "GFX_resolution_galactic_threats_committee" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_galactic_threats_committee" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galactic_threats_committee_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galactic_threats_committee_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_galactic_threats_committee + } + + ai_weight = { + base = @resolution_weight_disliked + } +} diff --git a/static/resolutions/00_resolutions_modified.txt b/static/resolutions/00_resolutions_modified.txt new file mode 100644 index 0000000..35358d5 --- /dev/null +++ b/static/resolutions/00_resolutions_modified.txt @@ -0,0 +1,14040 @@ +# Ecology + +resolution_ecology_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_1_effect_success + + hidden_effect = { + cancel_resolution = "resolution_ecology_recycling_initiatives" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_natural_sanctuaries" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_natural_sanctuaries" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_integrated_gardens" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_integrated_gardens_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_ecology_integrated_gardens" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_environmental_control_board" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_environmental_control_board_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_ecology_environmental_control_board" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 10 + in_breach_of = resolution_ecology_environmental_control_board + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_ecology_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_ecology_paradise_initiative" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_ecology_paradise_initiative_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_ecology_paradise_initiative" + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.25 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 1.2 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 1.2 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_recycling_initiatives = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + is_active_resolution = "resolution_ecology_natural_sanctuaries" + is_active_resolution = "resolution_ecology_integrated_gardens" + is_active_resolution = "resolution_ecology_environmental_control_board" + is_active_resolution = "resolution_ecology_paradise_initiative" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.6 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + } +} + +resolution_ecology_natural_sanctuaries = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_recycling_initiatives" + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.8 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_integrated_gardens = { + icon = "GFX_resolution_ecological_protection" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_natural_sanctuaries" + } + + effect = { + custom_tooltip = resolution_ecology_integrated_gardens_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.4 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.8 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.8 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_environmental_control_board = { + icon = "GFX_resolution_ecological_protection" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + effect = { + custom_tooltip = resolution_ecology_environmental_control_board_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + } + + allow = { + is_active_resolution = "resolution_ecology_integrated_gardens" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_terraformed + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + in_breach_of = resolution_ecology_environmental_control_board + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0.5 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0.5 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +resolution_ecology_paradise_initiative = { + icon = "GFX_resolution_ecological_protection" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_ecology_recycling_initiatives = 1 + resolution_ecology_natural_sanctuaries = 1 + resolution_ecology_integrated_gardens = 1 + resolution_ecology_environmental_control_board = 1 + resolution_ecology_paradise_initiative = 1 + } + + effect = { + custom_tooltip = resolution_ecology_paradise_initiative_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_ecology_environmental_control_board" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_terraformed + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 1.2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_mining_guilds + has_valid_civic = civic_machine_rockbreakers + } + desc = gal_com_miner_civic + } + + modifier = { + factor = 0 + country_uses_food = no + desc = gal_com_country_uses_food_no + } + + modifier = { + factor = 0 + is_lithoid_empire = yes + desc = lithoid + } + } +} + +# SCIENCE! + +resolution_galacticstudies_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_1_effect_success + hidden_effect = { + cancel_resolution = resolution_galacticstudies_cooperative_research_channels + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_2_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_astral_studies_network" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_3_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_advanced_xenostudies" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_astral_studies_network_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 2 + is_xenophile = yes + desc = ethic_xenophile + } + modifier = { + factor = 10 + in_breach_of = resolution_galacticstudies_advanced_xenostudies + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_4_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_advanced_xenostudies_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + modifier = { + factor = 10 + in_breach_of = resolution_galacticstudies_ethical_guideline_refactoring + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_galacticstudies_repeal_5_effect_success + + hidden_effect = { + cancel_resolution = "resolution_galacticstudies_extradimensional_experimentation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_galacticstudies_ethical_guideline_refactoring_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" + } + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 1.5 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_cooperative_research_channels = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + level = 1 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_astral_studies_network = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_astral_studies_network_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_cooperative_research_channels" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +resolution_galacticstudies_advanced_xenostudies = { + icon = "GFX_resolution_galactic_studies" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_advanced_xenostudies_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + } + } + country_event = { id = federations.10100 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_astral_studies_network" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + modifier = { + factor = 0 + in_breach_of = resolution_galacticstudies_advanced_xenostudies + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_ethical_guideline_refactoring = { + icon = "GFX_resolution_galactic_studies" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_ethical_guideline_refactoring_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + country_event = { id = federations.10110 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + modifier = { + factor = 0 + in_breach_of = resolution_galacticstudies_ethical_guideline_refactoring + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_galacticstudies_extradimensional_experimentation = { + icon = "GFX_resolution_galactic_studies" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_galacticstudies_cooperative_research_channels = 1 + resolution_galacticstudies_astral_studies_network = 1 + resolution_galacticstudies_advanced_xenostudies = 1 + resolution_galacticstudies_ethical_guideline_refactoring = 1 + resolution_galacticstudies_extradimensional_experimentation = 1 + } + + effect = { + custom_tooltip = resolution_galacticstudies_extradimensional_experimentation_tooltip + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10020 days = 3 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galacticstudies days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + AND = { + can_set_ai_policy = yes + has_policy_flag = ai_outlawed + } + AND = { + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + AND = { + has_technology = tech_selected_lineages + has_policy_flag = leader_enhancement_natural_selection + } + AND = { + has_technology = tech_capacity_boosters + NOT = { has_policy_flag = leader_enhancement_capacity_boosters } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_materialist = yes + desc = ethic_materialist + } + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + } +} + +# COMMERCE + +resolution_commerce_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_commerce_buzzword_standardization" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_2_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_leveraged_privateering" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_leveraged_privateering" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_3_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_underdeveloped_system_utilization" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_4 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_4_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_holistic_asset_coordination" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_commerce_underdeveloped_system_utilization_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_repeal_5 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_commerce_repeal_5_effect_success + + hidden_effect = { + cancel_resolution = "resolution_commerce_profit_maximization_engines" + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_commerce_profit_maximization_engines" + } + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.75 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_buzzword_standardization = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + is_active_resolution = "resolution_commerce_leveraged_privateering" + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + is_active_resolution = "resolution_commerce_profit_maximization_engines" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_free_traders + has_valid_civic = civic_trading_posts + } + desc = gal_com_trade_civic + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_leveraged_privateering = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_buzzword_standardization" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_underdeveloped_system_utilization = { + icon = "GFX_resolution_galactic_commerce" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + } + + effect = { + custom_tooltip = resolution_commerce_underdeveloped_system_utilization_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_leveraged_privateering" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_holistic_asset_coordination = { + icon = "GFX_resolution_galactic_commerce" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_underdeveloped_system_utilization" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + +resolution_commerce_profit_maximization_engines = { + icon = "GFX_resolution_galactic_commerce" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_commerce_buzzword_standardization = 1 + resolution_commerce_leveraged_privateering = 1 + resolution_commerce_underdeveloped_system_utilization = 1 + resolution_commerce_holistic_asset_coordination = 1 + resolution_commerce_profit_maximization_engines = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_commerce days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_commerce_holistic_asset_coordination" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + has_valid_civic = civic_corporate_dominion + desc = civic_corporate_dominion + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.1 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + } +} + + +# INDUSTRY + +resolution_industry_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_regulatory_facilitation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_collective_waste_management" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_collective_waste_management" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_building_a_better_tomorrow" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_4 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_environmental_ordinance_waivers" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_repeal_5 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_industry_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_industry_project_cornucopia" + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_industry_environmental_ordinance_waivers_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_industry_project_cornucopia" + } + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 2 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_regulatory_facilitation = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + is_active_resolution = "resolution_industry_collective_waste_management" + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + is_active_resolution = "resolution_industry_project_cornucopia" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_collective_waste_management = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_regulatory_facilitation" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_building_a_better_tomorrow = { + icon = "GFX_resolution_industrial_development" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_collective_waste_management" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_environmental_ordinance_waivers = { + icon = "GFX_resolution_industrial_development" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + } + + effect = { + custom_tooltip = resolution_industry_environmental_ordinance_waivers_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_building_a_better_tomorrow" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +resolution_industry_project_cornucopia = { + icon = "GFX_resolution_industrial_development" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_industry_regulatory_facilitation = 1 + resolution_industry_collective_waste_management = 1 + resolution_industry_building_a_better_tomorrow = 1 + resolution_industry_environmental_ordinance_waivers = 1 + resolution_industry_project_cornucopia = 1 + } + + effect = { + custom_tooltip = resolution_industry_project_cornucopia_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10000 days = 3 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_industry days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_industry_environmental_ordinance_waivers" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_slaver = yes + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_environmentalist + desc = civic_environmentalist + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + } +} + +# THE GREATER GOOD + +resolution_greatergood_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_workers_rights" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_workers_rights" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_five_year_plans" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_five_year_plans" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_five_year_plans + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_greater_than_ourselves" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + custom_tooltip = resolution_greatergood_five_year_plans_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_greater_than_ourselves + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_4 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_balance_in_the_middle" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + custom_tooltip = resolution_greatergood_greater_than_ourselves_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_balance_in_the_middle + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_repeal_5 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_greatergood_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_greatergood_universal_prosperity_mandate" + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_greatergood_balance_in_the_middle_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_greatergood_universal_prosperity_mandate" + } + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 10 + in_breach_of = resolution_greatergood_universal_prosperity_mandate + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_agrarian_idyll + desc = civic_agrarian_idyll + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_free_haven + desc = civic_free_haven + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_idealistic_foundation + desc = civic_idealistic_foundation + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_workers_rights = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_greatergood_workers_rights = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_greatergood_workers_rights" + is_active_resolution = "resolution_greatergood_five_year_plans" + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + is_active_resolution = "resolution_greatergood_universal_prosperity_mandate" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_greatergood_five_year_plans = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_five_year_plans_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + is_gestalt = no + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + country_event = { id = federations.10200 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_workers_rights" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + is_gestalt = no + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_five_year_plans + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_dystopian_society + is_slaver = yes + any_owned_species = { + is_sapient = yes + has_living_standard = { type = living_standard_subsistence country = prev } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_greater_than_ourselves = { + icon = "GFX_resolution_greater_good" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_greater_than_ourselves_tooltip + + hidden_effect = { + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = federations.10010 days = 15 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_enslaved_species = { + is_sapient = yes + OR = { + has_slavery_type = { type = slavery_normal country = prev } + has_slavery_type = { type = slavery_livestock country = prev } + has_slavery_type = { type = slavery_matrix country = prev } + } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + country_event = { id = federations.10210 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5095 } + } + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5100 } + } + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_five_year_plans" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + any_enslaved_species = { + is_sapient = yes + OR = { + has_slavery_type = { type = slavery_normal country = prev } + has_slavery_type = { type = slavery_livestock country = prev } + has_slavery_type = { type = slavery_matrix country = prev } + } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_greater_than_ourselves + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + OR = { + is_authoritarian = yes + is_gestalt = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_balance_in_the_middle = { + icon = "GFX_resolution_greater_good" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_balance_in_the_middle_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + country_event = { id = federations.10220 } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5105 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5110 } + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_greater_than_ourselves" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_slaver_guilds + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_balance_in_the_middle + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.6 + OR = { + is_authoritarian = yes + is_gestalt = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + } +} + +resolution_greatergood_universal_prosperity_mandate = { + icon = "GFX_resolution_greater_good" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_greatergood_workers_rights = 1 + resolution_greatergood_five_year_plans = 1 + resolution_greatergood_greater_than_ourselves = 1 + resolution_greatergood_balance_in_the_middle = 1 + resolution_greatergood_universal_prosperity_mandate = 1 + } + + effect = { + custom_tooltip = resolution_greatergood_universal_prosperity_mandate_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + + OR = { + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_good country = prev } + has_living_standard = { type = living_standard_decadent country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + AND = { + is_gestalt = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_ego_assimilation country = prev } + has_living_standard = { type = living_standard_ego_assimilation_psionic country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation_psionic country = prev } + } + } + } + } + } + country_event = { id = federations.10230 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_greatergood days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_greatergood_balance_in_the_middle" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_valid_civic = civic_indentured_assets + has_valid_civic = civic_slaver_guilds + AND = { + is_gestalt = no + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_subsistence country = prev } + has_living_standard = { type = living_standard_stratified country = prev } + has_living_standard = { type = living_standard_normal country = prev } + has_living_standard = { type = living_standard_academic_privilege country = prev } + has_living_standard = { type = living_standard_good country = prev } + has_living_standard = { type = living_standard_decadent country = prev } + has_living_standard = { type = living_standard_dystopian_society country = prev } + } + } + } + any_owned_species = { + is_sapient = yes + has_citizenship_type = { type = citizenship_slavery country = prev } + } + AND = { + is_gestalt = yes + any_owned_species = { + is_sapient = yes + OR = { + has_living_standard = { type = living_standard_ego_assimilation country = prev } + has_living_standard = { type = living_standard_ego_assimilation_psionic country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation country = prev } + has_living_standard = { type = living_standard_cyborg_ego_assimilation_psionic country = prev } + } + } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + is_egalitarian = no + desc = ethic_egalitarian + } + + modifier = { + factor = 0.75 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + in_breach_of = resolution_greatergood_universal_prosperity_mandate + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + } +} + +# MUTUAL DEFENSE + +resolution_mutualdefense_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_the_readied_shield" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_military_readiness_act" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_mutualdefense_military_readiness_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_military_readiness_act_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_4 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_castigation_proclamation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_enemy_of_my_enemy_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 2 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_repeal_5 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_mutualdefense_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_mutualdefense_renegade_containment" + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + + custom_tooltip = resolution_mutualdefense_castigation_proclamation_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 3 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_the_readied_shield = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.25 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_military_readiness_act = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 1 + } + + effect = { + custom_tooltip = resolution_mutualdefense_military_readiness_act_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_the_readied_shield" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_mutualdefense_military_readiness_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.1 + used_naval_capacity_percent < 0.5 + desc = gal_com_low_naval_capacity_percent + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_enemy_of_my_enemy = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 2 + } + + effect = { + custom_tooltip = resolution_mutualdefense_enemy_of_my_enemy_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_military_readiness_act" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_castigation_proclamation = { + icon = "GFX_resolution_mutual_defense" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 3 + } + + effect = { + custom_tooltip = resolution_mutualdefense_castigation_proclamation_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_enemy_of_my_enemy" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_modifier = resolution_denounced + is_in_breach_of_any = yes + } + desc = gal_com_is_denounced_or_in_breach + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_renegade_containment = { + icon = "GFX_resolution_mutual_defense" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_mutualdefense_the_readied_shield = 1 + resolution_mutualdefense_naval_weight = 4 + } + + effect = { + custom_tooltip = resolution_mutualdefense_renegade_containment_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_mutualdefense days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + used_naval_capacity_percent < 0.5 + is_subject = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_citizen_service + has_valid_civic = civic_distinguished_admiralty + has_valid_civic = civic_warrior_culture + has_valid_civic = civic_private_military_companies + has_valid_civic = civic_naval_contractors + has_valid_civic = civic_hive_subspace_ephapse + has_valid_civic = civic_hive_strength_of_legions + has_valid_civic = civic_machine_warbots + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_mutualdefense_castigation_denouncement = { + icon = "GFX_resolution_mutual_defense" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + NOT = { is_same_value = from } # don't denounce yourself. + OR = { + is_galactic_community_member = no + is_in_breach_of_any = yes + } + OR = { + opinion_level = { who = from level < neutral } + from = { is_rival = prev } + is_in_breach_of_any = yes + } + } + + effect = { + add_modifier = { modifier = resolution_denounced days = 3600 } + } + + potential = { + has_federations_dlc = yes + OR = { + is_active_resolution = "resolution_mutualdefense_castigation_proclamation" + is_active_resolution = "resolution_mutualdefense_renegade_containment" + } + } + + ai_weight = { + base = @resolution_weight_normal + } +} + +resolution_council_denouncement = { + icon = "GFX_resolution_purges" + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + is_galactic_council_established = yes + NOT = { has_global_flag = resolution_council_denouncement_abolished } + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = yes + NOT = { is_same_value = from } # don't denounce yourself. + OR = { + opinion_level = { who = from level < neutral } + from = { is_rival = prev } + is_in_breach_of_any = yes + } + NOT = { has_country_flag = constitutional_immunity } + } + + effect = { + add_modifier = { modifier = resolution_denounced days = 3600 } + } + + allow = { + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + # weaklings are scared of BtC + modifier = { + factor = 5 + has_nemesis = yes + any_playable_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + NOT = { is_same_value = prev } + has_resource = { + type = menace + amount > 1000 + } + relative_power = { + who = prev + category = all + value > equivalent + } + } + desc = gal_com_afraid_of_powerful_crisis + } + + # everyone is scared of BtC + modifier = { + factor = 5 + has_nemesis = yes + any_playable_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + NOT = { is_same_value = prev } + has_resource = { + type = menace + amount > 2000 + } + } + desc = gal_com_afraid_of_crisis + } + + # imagine having a BtC empire next door + modifier = { + factor = 5 + has_nemesis = yes + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + } + desc = gal_com_afraid_of_neighbor_crisis + } + + # imagine your rival having a (not too scary) BtC empire next door - that's good + modifier = { + factor = 0.01 + has_nemesis = yes + NOT = { + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + has_crisis_level = crisis_level_5 + } + } + } + any_rival_country = { + any_neighbor_country = { + #has_crisis_level >= crisis_level_1 + #has_crisis_level < crisis_level_5 + OR = { + has_crisis_level = crisis_level_1 + has_crisis_level = crisis_level_2 + has_crisis_level = crisis_level_3 + has_crisis_level = crisis_level_4 + #has_crisis_level = crisis_level_5 + } + } + } + desc = gal_com_pleased_to_have_rival_neighboring_crisis + } + } +} + + +# RULES OF WAR + +resolution_rulesofwar_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_guardian_angels" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_reverence_for_life" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_reverence_for_life + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_independent_tribunals" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_reverence_for_life_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_independent_tribunals + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_4 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_last_resort_doctrine" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_last_resort_doctrine + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_repeal_5 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_rulesofwar_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_rulesofwar_demobilization_initiative" + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_rulesofwar_demobilization_initiative" + } + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_rulesofwar_demobilization_initiative + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_guardian_angels = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + is_active_resolution = "resolution_rulesofwar_demobilization_initiative" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_reverence_for_life = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_reverence_for_life_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = purge_allowed + } + country_event = { id = federations.10300 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_guardian_angels" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_reverence_for_life + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.2 + has_ai_personality_behaviour = purger + NOT = { has_valid_civic = civic_machine_servitor } + desc = gal_com_purger_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_independent_tribunals = { + icon = "GFX_resolution_rules_of_war" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + OR = { + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + } + } + country_event = { id = federations.10310 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_independent_tribunals + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_last_resort_doctrine = { + icon = "GFX_resolution_rules_of_war" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = unrestricted_wars + } + country_event = { id = federations.10320 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = unrestricted_wars + has_policy_flag = purge_allowed + has_country_flag = resolution_breached_fired_cracker + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + has_policy_flag = unrestricted_wars + desc = gal_com_opposing_policy + } + + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_last_resort_doctrine + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.2 + has_ai_personality_behaviour = conqueror + desc = personality_type_conqueror + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_rulesofwar_demobilization_initiative = { + icon = "GFX_resolution_rules_of_war" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_rulesofwar_guardian_angels = 1 + resolution_rulesofwar_reverence_for_life = 1 + resolution_rulesofwar_independent_tribunals = 1 + resolution_rulesofwar_last_resort_doctrine = 1 + resolution_rulesofwar_demobilization_initiative = 1 + } + + effect = { + custom_tooltip = resolution_rulesofwar_demobilization_initiative_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_policy_flag = economic_policy_military + } + country_event = { id = federations.10330 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_rulesofwar days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_policy_flag = unrestricted_wars + has_policy_flag = purge_allowed + has_policy_flag = economic_policy_military + has_policy_flag = orbital_bombardment_armageddon + has_policy_flag = orbital_bombardment_indiscriminate + has_country_flag = resolution_breached_fired_cracker + has_country_flag = resolution_breached_fired_neutron + has_country_flag = resolution_breached_fired_godray + has_country_flag = resolution_breached_fired_assimilator + has_country_flag = resolution_breached_fired_deluge + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0 + has_ai_personality_behaviour = conqueror + desc = personality_type_conqueror + } + + modifier = { + factor = 0 + has_policy_flag = economic_policy_military + desc = economic_policy_military + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_demobilization_initiative + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +# DIVINITY OF LIFE + +resolution_divinity_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_comfort_the_fallen" + remove_global_flag = galactic_community_resolution_divinity_comfort_the_fallen + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.15 + is_authoritarian = yes + is_spiritualist = no + desc = ethic_authoritarian + } + + modifier = { + factor = 1.15 + is_megacorp = yes + is_spiritualist = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.25 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.95 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + + modifier = { + factor = 0 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + } +} + +resolution_divinity_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_tithe_on_the_soulless" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_right_to_work" + remove_global_flag = galactic_community_resolution_divinity_right_to_work + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_divinity_right_to_work" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + } + + allow = {} + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_4 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_silence_the_soulless" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_independent_tribunals_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_divinity_silence_the_soulless" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_repeal_5 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_divinity_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_divinity_a_defined_purpose" + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + custom_tooltip = resolution_rulesofwar_last_resort_doctrine_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_divinity_a_defined_purpose" + } + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 1.75 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 0.8 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_opposing_personality + } + + modifier = { + factor = 0.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 10 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 10 + in_breach_of = resolution_divinity_a_defined_purpose + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 10 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_comfort_the_fallen = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + } + + effect = { + custom_tooltip = resolution_divinity_comfort_the_fallen_effect + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_global_flag = galactic_community_resolution_divinity_comfort_the_fallen + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + is_active_resolution = "resolution_divinity_right_to_work" + is_active_resolution = "resolution_divinity_silence_the_soulless" + is_active_resolution = "resolution_divinity_a_defined_purpose" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 0.85 + is_authoritarian = yes + is_spiritualist = no + desc = ethic_authoritarian + } + + modifier = { + factor = 0.85 + is_megacorp = yes + is_spiritualist = no + desc = gov_megacorporation + } + + modifier = { + factor = 0.75 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 1.05 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.25 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + + modifier = { + factor = 2 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 2 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + } +} + +resolution_divinity_tithe_on_the_soulless = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + } + + effect = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_comfort_the_fallen" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_right_to_work = { + icon = "GFX_resolution_robots_bad" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + } + + effect = { + custom_tooltip = resolution_divinity_right_to_work_effect + hidden_effect = { + set_global_flag = galactic_community_resolution_divinity_right_to_work + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_tithe_on_the_soulless" + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_silence_the_soulless = { + icon = "GFX_resolution_robots_bad" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + } + + triggered_modifier = { + potential = { + is_synthetic_empire = yes + } + modifier = { + resolution_divinity_silence_the_soulless_synthetic_empire_effect = 1 + } + } + + effect = { + custom_tooltip = resolution_divinity_silence_the_soulless_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_global_flag = resolution_with_breach_effect_passed + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_right_to_work" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_synthetic_evolution + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +resolution_divinity_a_defined_purpose = { + icon = "GFX_resolution_robots_bad" + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_divinity_comfort_the_fallen = 1 + resolution_divinity_tithe_on_the_soulless = 1 + resolution_divinity_right_to_work = 1 + resolution_divinity_silence_the_soulless = 1 + resolution_divinity_a_defined_purpose = 1 + } + + effect = { + custom_tooltip = resolution_divinity_a_defined_purpose_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + in_breach_of = resolution_divinity_a_defined_purpose + } + country_event = { id = federations.10340 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_divinity days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_divinity_silence_the_soulless" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + OR = { + has_country_flag = resolution_breached_synthetic_evolution + AND = { + is_machine_empire = no + has_policy_flag = ai_full_rights + } + AND = { + is_machine_empire = yes + NOT = { has_valid_civic = civic_machine_servitor } + } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + has_ai_personality_behaviour = robot_exploiter + NOT = { has_valid_civic = civic_machine_servitor } + desc = personality_type_robot_exploiter + } + + modifier = { + factor = 0.25 + has_ai_personality_behaviour = robot_liberator + NOT = { has_valid_civic = civic_machine_servitor } + desc = personality_type_robot_liberator + } + + modifier = { + factor = 0.8 + is_gestalt = yes + NOT = { has_valid_civic = civic_machine_servitor } + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_synthetic_empire = yes + NOT = { has_valid_civic = civic_machine_servitor } + desc = synthetic_empire + } + + modifier = { + factor = 1.2 + NOR = { + has_ai_personality_behaviour = robot_exploiter + has_ai_personality_behaviour = robot_liberator + } + desc = gal_com_supporting_personality + } + + modifier = { + factor = 1.5 + is_spiritualist = yes + is_individual_machine = no + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_individual_machine = yes + desc = galcom_individual_machine + } + + modifier = { + factor = 100 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + + modifier = { + factor = 0 + has_origin = origin_cybernetic_creed + desc = origin_cybernetic_creed + } + } +} + +# GALACTIC REFORMS + +resolution_galacticreforms_abolish_council = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_abolish_council_tooltip + hidden_effect = { + set_council_size = 0 + remove_global_flag = galactic_council_formed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 0 + is_part_of_galactic_council = yes + NOT = { has_ai_personality = democratic_crusaders } + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.5 + is_part_of_galactic_council = no + has_ai_personality = democratic_crusaders + desc = gal_com_not_on_galatic_council + } + + modifier = { + factor = 0.5 + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + desc = gal_com_overlord_on_galatic_council + } + + modifier = { + factor = 0.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.1 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + OR = { + is_gestalt = yes + is_xenophobe = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0.8 + is_xenophile = yes + desc = ethic_xenophile + } + } +} + +resolution_galacticreforms_form_council = { + icon = "GFX_resolution_create_council" + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + NOT = { has_global_flag = galactic_council_formed } + has_galactic_emperor = no + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + } + + allow = { + is_years_since_community_formation >= 20 + } + + effect = { + custom_tooltip = resolution_galacticreforms_form_council_tooltip + hidden_effect = { + set_council_size = 3 + set_council_veto = no + remove_global_flag = resolution_council_denouncement_abolished + set_global_flag = galactic_council_formed + set_global_flag = galactic_community_resolution_passed + + set_global_flag = resolution_with_breach_effect_passed # council denouncement + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.5 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + desc = gal_com_empire_or_overlord_likely_council_candidate + } + + modifier = { + factor = 1.1 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + OR = { + is_gestalt = yes + is_xenophobe = yes + is_egalitarian = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + desc = gal_com_empire_or_overlord_unlikely_council_candidate + } + + modifier = { + factor = 0.5 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 0.5 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + + modifier = { + factor = 0.5 + has_ai_personality = democratic_crusaders + desc = personality_democratic_crusaders + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + } +} + +resolution_galacticreforms_council_size_1 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 1 + set_global_flag = galactic_council_formed + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + num_council_positions = 2 + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 3 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_empire_or_overlord_highest_rank + } + + modifier = { + factor = 0 + galactic_community_rank = 2 + desc = gal_com_second_rank + } + + modifier = { + factor = 0.8 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + } +} + +resolution_galacticreforms_council_size_2 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 2 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 1 + num_council_positions = 3 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 1 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + num_council_positions = 1 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_alone_on_council_or_overlord + } + + + modifier = { + factor = 3 + + AND = { + num_council_positions = 1 + OR = { + galactic_community_rank = 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 2 + } + } + } + } + + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 3 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 3 + is_egalitarian = yes + } + AND = { + num_council_positions = 1 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 3 + is_authoritarian = yes + } + AND = { + num_council_positions = 1 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + +resolution_galacticreforms_council_size_3 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 3 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 2 + num_council_positions = 4 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 2 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 4 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + AND = { + num_council_positions = 2 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + modifier = { + factor = 3 + + AND = { + num_council_positions = 4 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 3 + AND = { + num_council_positions = 2 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 4 + is_egalitarian = yes + } + AND = { + num_council_positions = 2 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 4 + is_authoritarian = yes + } + AND = { + num_council_positions = 2 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + +resolution_galacticreforms_council_size_4 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 4 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + OR = { + num_council_positions = 3 + num_council_positions = 5 + } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 3 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + AND = { + num_council_positions = 5 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + + modifier = { + factor = 0 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + + modifier = { + factor = 3 + + AND = { + num_council_positions = 5 + OR = { + galactic_community_rank <= 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 4 + } + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + + modifier = { + factor = 3 + AND = { + num_council_positions = 3 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + OR = { + AND = { + num_council_positions = 5 + is_egalitarian = yes + } + AND = { + num_council_positions = 3 + is_authoritarian = yes + } + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 1.2 + OR = { + AND = { + num_council_positions = 5 + is_authoritarian = yes + } + AND = { + num_council_positions = 3 + is_egalitarian = yes + } + } + desc = gal_com_supporting_ethics + } + } +} + + +resolution_galacticreforms_council_size_5 = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 5 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + OR = { + has_federations_dlc = yes + has_nemesis = yes + } + has_global_flag = galactic_council_formed + num_council_positions = 4 + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 3 + num_council_positions = 4 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + is_galactic_community_member = yes + desc = gal_com_negative_sentiment + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + } +} + +resolution_galacticreforms_permanent_seat = { + icon = "GFX_resolution_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = no + is_galactic_custodian = no + } + + effect = { + add_permanent_councillor = yes + } + + potential = { + has_federations_dlc = yes + is_galactic_council_established = yes + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +resolution_galacticreforms_revoke_permanent_seat = { + icon = "GFX_resolution_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = yes + is_galactic_custodian = no + } + + effect = { + remove_permanent_councillor = yes + } + + potential = { + has_federations_dlc = yes + is_galactic_council_established = yes + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +resolution_galacticreforms_enable_council_veto = { + icon = "GFX_resolution_remove_council_member" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + + effect = { + set_council_veto = yes + set_global_flag = galactic_council_veto + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + NOT = { has_global_flag = galactic_council_veto } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + } +} + +resolution_galacticreforms_disable_council_veto = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_disable_council_veto_tooltip + hidden_effect = { + set_council_veto = no + remove_global_flag = galactic_council_veto + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + has_global_flag = galactic_council_veto + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_galacticreforms_enable_council_denouncement = { + icon = "GFX_resolution_denounce_empire" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_enable_council_denouncement_tooltip + hidden_effect = { + remove_global_flag = resolution_council_denouncement_abolished + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = resolution_council_denouncement_abolished + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_galacticreforms_disable_council_denouncement = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_disable_council_denouncement_tooltip + hidden_effect = { + set_global_flag = resolution_council_denouncement_abolished + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + has_global_flag = galactic_council_formed + NOT = { has_global_flag = resolution_council_denouncement_abolished } + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2.5 + has_modifier = resolution_denounced + desc = gal_com_is_denounced + } + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + + +# SANCTIONS + +resolution_sanctions_tech_repeal_1 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_tech_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_repeal_2 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_tech_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_repeal_3 = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_tech_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_tech_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_tech_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_1 = { + icon = "GFX_sanctions_blue" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_tech_1" + is_active_resolution = "resolution_sanctions_tech_2" + is_active_resolution = "resolution_sanctions_tech_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_2 = { + icon = "GFX_sanctions_blue" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_tech_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_tech_3 = { + icon = "GFX_sanctions_blue" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_tech = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_tech_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_1 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_economic_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_2 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_economic_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_repeal_3 = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_economic_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_economic_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_economic_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_1 = { + icon = "GFX_sanctions_orange" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_economic_1" + is_active_resolution = "resolution_sanctions_economic_2" + is_active_resolution = "resolution_sanctions_economic_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_2 = { + icon = "GFX_sanctions_orange" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_economic_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_economic_3 = { + icon = "GFX_sanctions_orange" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_economic = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_economic_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_1 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_military_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_2 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_military_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_repeal_3 = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_military_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_military_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_military_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_opposing_ethics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_1 = { + icon = "GFX_sanctions_red" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_military_1" + is_active_resolution = "resolution_sanctions_military_2" + is_active_resolution = "resolution_sanctions_military_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_2 = { + icon = "GFX_sanctions_red" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_military_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_military_3 = { + icon = "GFX_sanctions_red" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_military = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_military_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + is_militarist = yes + is_pacifist = yes + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_1" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_sanctions_administrative_1" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_2" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_administrative_2" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 1 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + sanction = yes + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_sanctions_administrative_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_sanctions_administrative_3" + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + is_active_resolution = "resolution_sanctions_administrative_3" + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 2 + } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 0.75 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_1 = { + icon = "GFX_sanctions_purple" + level = 1 + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 1 + } + } + + allow = { + custom_tooltip = { + fail_text = "requires_something_illegal" + has_global_flag = resolution_with_breach_effect_passed + } + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_sanctions_administrative_1" + is_active_resolution = "resolution_sanctions_administrative_2" + is_active_resolution = "resolution_sanctions_administrative_3" + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_2 = { + icon = "GFX_sanctions_purple" + level = 2 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 2 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_administrative_1" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +resolution_sanctions_administrative_3 = { + icon = "GFX_sanctions_purple" + level = 3 + + potential = { + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + sanction = yes + + effect = { + custom_tooltip = sanctions_effect + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + set_timed_global_flag = { + flag = recent_galcom_sanctions_passed + years = 10 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + triggered_modifier = { + potential = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + show_if_not_potential = yes + modifier = { + resolution_sanctions_administrative = 3 + } + } + + allow = { + is_active_resolution = "resolution_sanctions_administrative_2" + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + is_in_breach_of_any = yes + desc = gal_com_is_in_breach + } + + modifier = { + factor = 0.33 + has_global_flag = recent_galcom_sanctions_passed + desc = gal_com_recent_sanction_passed + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_in_breach_of_any = no + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_supporting_ethics + } + + modifier = { + factor = 0.5 + any_federation_ally = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_federation_member_in_breach_or_denounced + } + + modifier = { + factor = 1.25 + any_rival_country = { + OR = { + is_in_breach_of_any = yes + has_modifier = resolution_denounced + } + } + desc = gal_com_rival_in_breach_or_denounced + } + } +} + +# GALACTIC FOCUS RESOLUTIONS + +resolution_galactic_focus_crisis_prethoryn = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_prethoryn_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_prethoryn + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = ongoing_prethoryn_invasion + NOT = { has_global_flag = galactic_focus_crisis_prethoryn } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = ongoing_prethoryn_invasion + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = swarm + } + desc = gal_com_is_neighboring_swarm + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + is_country_type = swarm + } + } + desc = gal_com_is_not_neighboring_swarm + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = swarm + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_unbidden = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_unbidden_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_unbidden + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = extradimensional_invasion_happened + NOR = { + has_global_flag = extradimensional_invasion_defeated + has_global_flag = galactic_focus_crisis_unbidden + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = extradimensional_invasion_defeated } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + desc = gal_com_neighboring_extradimensional + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + } + desc = gal_com_not_neighboring_extradimensional + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.1 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = extradimensional + is_country_type = extradimensional_2 + is_country_type = extradimensional_3 + } + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_contingency = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_contingency_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_contingency + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = ai_invasion_ongoing + NOT = { has_global_flag = galactic_focus_crisis_contingency } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = ai_invasion_ongoing + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = ai_empire + } + desc = gal_com_neighboring_ai_empire + } + + modifier = { + factor = 0.75 + + NOT = { + any_neighbor_country = { + is_country_type = ai_empire + } + } + desc = gal_com_not_neighboring_ai_empire + } + + modifier = { + factor = 0.75 + + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 1.25 + + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 10 + + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.2 + OR = { + is_materialist = yes + is_synthetic_empire = yes + } + desc = gal_com_is_materialist_or_synthetic + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = ai_empire + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_greatkhan = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_greatkhan_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_greatkhan + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = great_khan_announcement + NOT = { has_global_flag = great_khan_dead } + NOT = { has_global_flag = galactic_focus_crisis_greatkhan } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = great_khan_dead } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + + any_agreement = { agreement_preset = preset_satrapy } + NOT = { has_country_flag = rebelling_satrapy } + desc = gal_com_satrapy + } + + modifier = { + factor = 10 + + any_agreement = { agreement_preset = preset_satrapy } + has_country_flag = rebelling_satrapy + desc = gal_com_rebelling_satrapy + } + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = awakened_marauders + } + + desc = gal_com_neighboring_awakened_marauders + } + + modifier = { + factor = 1.1 + + any_neighbor_country = { + any_agreement = { agreement_preset = preset_satrapy } + NOT = { has_country_flag = rebelling_satrapy } + } + desc = gal_com_neighboring_satrapy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.2 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + OR = { + is_country_type = awakened_marauders + any_agreement = { agreement_preset = preset_satrapy } + } + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_crisis_nanites = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_nanites_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_nanites + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = gray_goo_crisis_active + NOT = { has_global_flag = galactic_focus_crisis_nanites } + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = gray_goo_crisis_active + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = gray_goo + } + desc = gal_com_neighboring_gray_goo + } + + modifier = { + factor = 0.75 + + NOT = { + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.10 + } + } + desc = gal_com_gray_goo_size_smallest + } + + modifier = { + factor = 1.1 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.10 + galaxy_percentage <= 0.20 + } + desc = gal_com_gray_goo_size_small + } + + modifier = { + factor = 1.5 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.20 + galaxy_percentage <= 0.30 + } + desc = gal_com_gray_goo_size_medium + } + + modifier = { + factor = 2 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.30 + galaxy_percentage <= 0.40 + } + desc = gal_com_gray_goo_size_large + } + + modifier = { + factor = 3 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.40 + galaxy_percentage <= 0.50 + } + desc = gal_com_gray_goo_size_very_large + } + + modifier = { + factor = 10 + + any_country = { + is_country_type = gray_goo + galaxy_percentage > 0.50 + } + desc = gal_com_gray_goo_size_huge + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.2 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = gray_goo + } + } + desc = ethic_xenophobe + } + } +} + +resolution_galactic_focus_war_in_heaven_support_side_1 = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_support_side_1_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:SecondSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NAND = { + exists = overlord + has_overlord = event_target:FirstSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + exists = overlord + has_overlord = event_target:FirstSleeper + desc = gal_com_supporting_their_overlord + } + + modifier = { + factor = 0 + exists = overlord + has_overlord = event_target:SecondSleeper + desc = gal_com_supporting_their_overlord + } + } +} + +resolution_galactic_focus_war_in_heaven_support_side_2 = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_support_side_2_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:FirstSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NAND = { + exists = overlord + has_overlord = event_target:SecondSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + exists = overlord + has_overlord = event_target:FirstSleeper + desc = gal_com_supporting_their_overlord + } + + modifier = { + factor = 2 + exists = overlord + has_overlord = event_target:SecondSleeper + desc = gal_com_supporting_their_overlord + } + } +} + +resolution_galactic_focus_war_in_heaven_denounce_both = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + triggered_modifier = { + potential = { + has_global_flag = war_in_heaven_ongoing + OR = { + NOT = { exists = overlord } + overlord = { + NOR = { + is_same_value = event_target:FirstSleeper + is_same_value = event_target:SecondSleeper + } + } + } + } + modifier = { + damage_vs_country_type_awakened_fallen_empire_mult = 0.25 + } + } + + effect = { + custom_tooltip = resolution_galactic_focus_war_in_heaven_denounce_both_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_war_in_heaven + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_global_flag = war_in_heaven_ongoing + has_galactic_emperor = no # Empire always at war with WiH sides + NOT = { has_global_flag = galactic_focus_war_in_heaven } + exists = event_target:FirstSleeper + exists = event_target:SecondSleeper + } + + active = { # Resolution only in effect while this trigger is met + has_global_flag = war_in_heaven_ongoing + } + + breach = { + has_global_flag = war_in_heaven_ongoing + NOT = { has_country_flag = constitutional_immunity } + exists = overlord + OR = { + has_overlord = event_target:FirstSleeper + has_overlord = event_target:SecondSleeper + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0 + exists = overlord + OR = { + has_overlord = event_target:FirstSleeper + has_overlord = event_target:SecondSleeper + } + desc = gal_com_does_not_have_awakened_overlord + } + } +} + +resolution_tiyanki_conservation_act = { + icon = "GFX_resolution_tiyanki_preservation" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_tiyanki_conservation_act_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + NOT = { + is_active_resolution = "resolution_tiyanki_pest_control" + has_global_flag = tiyanki_extinct + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_tiyanki_conservation_act" + is_active_resolution = "resolution_amoeba_conservation_act" + } + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = tiyanki_extinct } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_killed_tiyanki + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + } +} + +resolution_repeal_tiyanki_conservation_act = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_tiyanki_conservation_act_effect_success + hidden_effect = { + cancel_resolution = "resolution_tiyanki_conservation_act" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_tiyanki_conservation_act" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.5 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + + modifier = { + factor = 10 + in_breach_of = resolution_tiyanki_conservation_act + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_tiyanki_pest_control = { + icon = "GFX_resolution_tiyanki_hunt" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_tiyanki_pest_control_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_global_flag = galactic_community_resolution_passed + country_event = { id = galcom.103 } + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + NOT = { + is_active_resolution = "resolution_tiyanki_conservation_act" + has_global_flag = tiyanki_extinct + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_tiyanki_pest_control" } + } + } + + active = { # Resolution only in effect while this trigger is met + NOT = { has_global_flag = tiyanki_extinct } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_country_flag = resolution_breached_tiyanki_inside_borders + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.25 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + } +} + +resolution_repeal_tiyanki_pest_control = { + icon = "GFX_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_tiyanki_pest_control_effect_success + hidden_effect = { + cancel_resolution = "resolution_tiyanki_pest_control" + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_tiyanki_pest_control" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 10 + in_breach_of = resolution_tiyanki_pest_control + desc = gal_com_in_breach_of_proposed_resolution + } + } +} + +resolution_amoeba_conservation_act = { + icon = "GFX_resolution_tiyanki_preservation" + + potential = { + has_federations_dlc = yes + has_modifier = pacified_amoebas + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + target = no + + effect = { + custom_tooltip = resolution_amoeba_conservation_act_tooltip + hidden_effect = { + every_country = { + limit = { + is_galactic_community_member = yes + NOT = { has_modifier = pacified_amoebas } + } + country_event = { id = galactic_features.505 } + } + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = resolution_tiyanki_conservation_act + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_amoeba_conservation_act" } + } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + NOT = { has_modifier = pacified_amoebas } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + has_origin = origin_fruitful + desc = gal_com_supporting_origin + } + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.75 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + is_xenophobe = yes + desc = ethic_xenophobe + } + } +} + +resolution_repeal_amoeba_conservation_act = { + icon = "GFX_repeal_blue" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_repeal_amoeba_conservation_act_effect_success + hidden_effect = { + cancel_resolution = resolution_amoeba_conservation_act + set_timed_country_flag = { flag = galactic_community_resolution_passed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_ecology_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = "resolution_amoeba_conservation_act" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.75 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.25 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.5 + has_valid_civic = civic_hive_cordyceptic_drones + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 10 + in_breach_of = resolution_amoeba_conservation_act + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + has_origin = origin_fruitful + desc = gal_com_opposing_origin + } + } +} + + +# Galactic Market Resolutions +resolution_galactic_market_form = { + icon = "GFX_resolution_form_galactic_market" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no # therefore, scope = proposing country + + effect = { + custom_tooltip = resolution_galactic_market_form_effect_success + hidden_effect = { + # Start the Forming the Market event chain + country_event = { id = action.96 } + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + modifier = { + country_resource_max_add = 10000 + } + + potential = { + NOR = { + has_global_flag = galactic_market_founded + has_global_flag = ongoing_market_nomination + } + + is_gestalt = no + is_homicidal = no + count_relation = { + limit = { + is_country_type = default + is_homicidal = no + } + count >= 3 + } + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 1.25 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.8 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + years_passed > 50 + desc = gal_com_years_passed + } + + modifier = { + factor = 2 + years_passed > 100 + desc = gal_com_years_passed + } + + modifier = { + factor = 2 + years_passed > 150 + desc = gal_com_years_passed + } + } +} + +resolution_galactic_market_ban_sentient_organic_slave_trade = { + icon = "GFX_resolution_galactic_market_slave_trade" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + effect = { + custom_tooltip = resolution_galactic_market_ban_sentient_organic_slave_trade_effect_success + hidden_effect = { + set_global_flag = organic_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5115 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5120 } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + NOT = { + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + has_global_flag = organic_slave_trade_banned_flag + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_repeal_sentient_organic_slave_trade = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_repeal_sentient_organic_slave_trade_effect_success + hidden_effect = { + remove_global_flag = organic_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5131 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = organic_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_ban_sentient_slave_trade = { + icon = "GFX_resolution_galactic_market_slave_trade" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_ban_sentient_slave_trade_effect_success + hidden_effect = { + set_global_flag = sentient_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5125 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5130 } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = organic_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_organic_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.75 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 0 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_allow_sentient_slave_trade = { + icon = "GFX_repeal_orange" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_denounce + } + } + + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_galactic_market_allow_sentient_slave_trade_effect_success + hidden_effect = { + remove_global_flag = sentient_slave_trade_banned_flag + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_origin = origin_broken_shackles + } + country_event = { id = origin.5130 } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + has_global_flag = sentient_slave_trade_banned_flag + is_active_resolution = "resolution_galactic_market_ban_sentient_slave_trade" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.25 + is_spiritualist = yes + desc = ethic_spiritualist + } + + modifier = { + factor = 2 + is_slaver = yes + desc = gal_com_slaver_empire + } + } +} + +resolution_galactic_market_relocate = { + icon = "GFX_resolution_relocate_galactic_market" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_galactic_market_relocate_trigger_fail" + NOT = { + has_global_flag = "resolution_galactic_market_relocated_recently" + } + } + } + + effect = { + custom_tooltip = resolution_galactic_market_relocate_effect_success + hidden_effect = { + country_event = { id = galcom.64 } + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + + set_timed_global_flag = { flag = resolution_galactic_market_relocated_recently days = 18000 } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_federations_dlc = yes + host_has_dlc = "Megacorp" + has_global_flag = galactic_market_founded + NOT = { + has_global_flag = ongoing_market_relocation_nomination + } + NOT = { has_modifier = galactic_market_founder } + is_gestalt = no + is_homicidal = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0 + has_modifier = galactic_market_founder + desc = gal_com_is_galactic_market_founder + } + + modifier = { + factor = 0 + any_federation_ally = { + has_modifier = galactic_market_founder + } + desc = gal_com_federation_ally_is_galactic_market_founder + } + + modifier = { + factor = 0.5 + is_gestalt = no + has_resource = { type = influence amount < 400 } + desc = gal_com_low_influence + } + + modifier = { + factor = 1.5 + is_gestalt = no + has_resource = { type = influence amount > 700 } + desc = gal_com_high_influence + } + + modifier = { + factor = 2 + has_authority = auth_corporate + NOT = { has_modifier = galactic_market_founder } + desc = gal_com_is_not_galactic_market_founder + } + + modifier = { + factor = 1.25 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + NOT = { has_modifier = galactic_market_founder } + desc = gal_com_trader_ai_personality + } + } +} + +#POLITICS TRADITIONS RESOLUTION + +resolution_community_champions = { + icon = "GFX_resolution_community_champions" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + triggered_modifier = { + potential = { + is_galactic_custodian = no + is_galactic_emperor = no + is_part_of_galactic_council = yes + } + modifier = { + community_champion_counselor = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_custodian = yes + } + modifier = { + community_champion_custodian = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_emperor = yes + } + modifier = { + community_champion_emperor = 1 + } + } + + triggered_modifier = { + potential = { + is_galactic_custodian = no + is_galactic_emperor = no + is_part_of_galactic_council = no + } + modifier = { + community_champion_regular = 1 + } + } + + effect = { + custom_tooltip = resolution_community_champions_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_community_champions days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_community_champions days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { + is_active_resolution = resolution_community_champions + } + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + } +} + +resolution_constitutional_immunity = { + icon = "GFX_resolution_constitutional_immunity" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = yes + + valid_target = { + is_same_value = from + NOT = { has_country_flag = constitutional_immunity } + } + + effect = { + custom_tooltip = resolution_constitutional_immunity_tooltip + hidden_effect = { + set_country_flag = constitutional_immunity + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + fail_text = "immunity_already_active" + NOT = { + any_country = { + has_country_flag = constitutional_immunity + } + } + } + } + + ai_weight = { + base = @resolution_weight_hated + } +} + +resolution_development_aides = { + icon = "GFX_resolution_development_aides" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + + triggered_modifier = { + potential = { + is_part_of_galactic_council = yes + } + modifier = { + development_aides_counselor = 1 + } + } + + triggered_modifier = { + potential = { + is_part_of_galactic_council = no + } + modifier = { + development_aides_regular = 1 + } + } + + effect = { + custom_tooltip = resolution_development_aides_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_development_aides days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_development_aides days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + text = "resolution_already_active" + } + NOT = { + is_active_resolution = resolution_development_aides + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + + modifier = { + factor = 10 + is_part_of_galactic_council = no + OR = { + has_deficit = minerals + has_deficit = energy + has_deficit = food + } + desc = unstable_economy + } + } +} + +resolution_galactic_threats_committee = { + icon = "GFX_resolution_galactic_threats_committee" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = no + + modifier = { + description = resolution_galactic_threats_committee_modifier_desc + planet_researchers_upkeep_mult = 0.1 + damage_vs_country_type_synth_queen_mult = 0.2 + damage_vs_country_type_swarm_mult = 0.2 + damage_vs_country_type_extradimensional_mult = 0.2 + damage_vs_country_type_extradimensional_2_mult = 0.2 + damage_vs_country_type_extradimensional_3_mult = 0.2 + damage_vs_country_type_ai_empire_mult = 0.2 + damage_vs_country_type_gray_goo_mult = 0.2 + damage_vs_player_crisis_mult = 0.2 + #Also makes the crisis come sooner in crisis_trigger.1 + } + + effect = { + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_galactic_threats_commitee days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galactic_threats_commitee days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_tradition = tr_politics_finish + } + + allow = { + custom_tooltip = { + text = "resolution_already_active" + } + NOT = { + is_active_resolution = resolution_galactic_threats_committee + } + is_galactic_council_established = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + } +} + +resolution_community_champions_repeal = { + icon = "GFX_resolution_community_champions" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_community_champions" + set_timed_country_flag = { flag = galactic_community_resolution_passed_community_champions_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_community_champions_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_community_champions + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.7 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + has_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + } +} + +resolution_constitutional_immunity_repeal = { + icon = "GFX_resolution_constitutional_immunity" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + + target = yes + harmful = yes + valid_target = { + has_country_flag = constitutional_immunity + } + + effect = { + remove_country_flag = constitutional_immunity + } + + ai_weight = { + base = @resolution_weight_popular + } +} + +resolution_development_aides_repeal = { + icon = "GFX_resolution_development_aides" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_development_aides" + set_timed_country_flag = { flag = galactic_community_resolution_passed_development_aides_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_development_aides_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_development_aides + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.9 + OR = { + is_part_of_galactic_council = yes + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + } + desc = gal_com_they_or_overlord_on_galatic_council + } + + modifier = { + factor = 2 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + } + } + desc = gal_com_they_nor_overlord_not_on_galatic_council + } + + modifier = { + factor = 0.1 + is_part_of_galactic_council = no + OR = { + has_deficit = minerals + has_deficit = energy + has_deficit = food + } + desc = unstable_economy + } + } +} + +resolution_galactic_threats_committee_repeal = { + icon = "GFX_resolution_galactic_threats_committee" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + hidden_effect = { + cancel_resolution = "resolution_galactic_threats_committee" + set_timed_country_flag = { flag = galactic_community_resolution_passed_galactic_threats_committee_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_galactic_threats_committee_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + is_active_resolution = resolution_galactic_threats_committee + } + + ai_weight = { + base = @resolution_weight_disliked + } +} diff --git a/static/resolutions/01_resolutions_nemesis.txt b/static/resolutions/01_resolutions_nemesis.txt new file mode 100644 index 0000000..6f3360a --- /dev/null +++ b/static/resolutions/01_resolutions_nemesis.txt @@ -0,0 +1,5775 @@ +@resolution_weight_hated = 3 +@resolution_weight_disliked = 4 +@resolution_weight_unpopular = 5 +@resolution_weight_normal = 6 +@resolution_weight_popular = 6.5 +@resolution_weight_loved = 7 + +@resolution_cost_t1 = 100 +@resolution_cost_t2 = 150 +@resolution_cost_t3 = 200 +@resolution_cost_t4 = 250 +@resolution_cost_t5 = 300 +@resolution_cost_denounce = 25 + +@resolution_flag_timer = 360 + +#example_resolution = { +# icon = "name of the icon key" +# resources = {} # cost and category +# target = yes/no # if this resolution requires a target country +# harmful = yes/no # if the AI should consider this harmful when choosing target +# modifier = {} # modifier to be applied to all community members if passed +# triggered_modifier = {} # triggered modifier to be applied, scope is country +# effect = {} # effect to be applied if passed, scope is proposer unless there is a target country - then scope is target country, with proposer in from scope +# fail_effects = {} # effect to be applied if failed, scope is proposer unless there is a target country - then scope is target country, with proposer in from scope +# potential = {} # potential trigger, scope is country +# allow = {} # allow trigger, scope is country +# active = {} # Enacted resolutions are cancelled if this trigger fails +# +# ai_weight = {} # ai weight modifiers, scope is country. from scope is the target country for targeted resolutions +# NOTE: all ai_weight modifiers are multiplicative. The end result is also multiplied with a factor based on the opinion towards the proposer and/or target, +# see RESOLUTION_TARGET_OPINION_MIN_FACTOR etc. in 00_defines.txt. Also see RESOLUTION_VOTE_SUPPORT_THRESHOLD etc. for balancing the values. +# +# valid_target = {} # valid targets trigger, scope is country +#} + +# NOTE: Remember to add Resolutions to a Resolution Category! + +### DECLARE CRISIS + +resolution_declare_crisis = { + icon = "GFX_resolution_declare_crisis" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = yes + + valid_target = { + NOT = { is_same_value = from } + OR = { + is_country_type = default + AND = { + is_fallen_empire = yes + NOT = { has_global_flag = war_in_heaven_ongoing } + } + } + NOT = { has_country_flag = declared_crisis } + } + + modifier = { + starbase_shipyard_build_speed_mult = 0.20 + ships_upkeep_mult = -0.1 + } + + effect = { + custom_tooltip = resolution_declare_crisis_tooltip + hidden_effect = { + if = { + limit = { is_galactic_community_member = yes } + remove_from_galactic_community = yes + } + if = { + limit = { + is_galactic_council_established = yes + is_part_of_galactic_council = yes + } + remove_from_galactic_council = yes + } + every_subject = { + if = { + limit = { is_galactic_community_member = yes } + remove_from_galactic_community = yes + } + if = { + limit = { + is_galactic_council_established = yes + is_part_of_galactic_council = yes + } + remove_from_galactic_council = yes + } + } + set_country_flag = declared_crisis + save_event_target_as = new_crisis + country_event = { id = crisis.4105 } + every_playable_country = { + limit = { + is_ai = no + NOT = { is_same_value = prev } + } + country_event = { id = crisis.4100 } + } + if = { + limit = { has_galactic_custodian = yes } + galactic_custodian = { + save_event_target_as = community_war_leader + if = { + limit = { is_in_federation_with = event_target:new_crisis } + event_target:new_crisis = { + leave_alliance = { override_requirements = yes } + } + } + } + } + else_if = { + limit = { has_galactic_emperor = yes } + galactic_emperor = { + save_event_target_as = community_war_leader + } + } + else = { + random_playable_country = { + limit = { + is_galactic_community_member = yes + NOT = { is_in_federation_with = event_target:new_crisis } + } + weights = { + base = 1 + modifier = { + add = 10000 + galactic_community_rank = 1 + } + modifier = { + add = 1000 + galactic_community_rank = 2 + } + modifier = { + add = 100 + galactic_community_rank = 3 + } + modifier = { + add = 10 + is_galactic_council_established = yes + is_part_of_galactic_council = yes + } + } + save_event_target_as = community_war_leader + } + } + + declare_crisis_war_effect = yes + } + } + + potential = { + has_nemesis = yes + has_galactic_emperor = no + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_hated + + # Should almost always declare on Crisis countries in end game + modifier = { + factor = 50 + from = { + has_country_flag = crisis_sphere_revealed + } + desc = gal_com_crisis_sphere_revealed + } + + # More likely to declare on very powerful homicidal empires + modifier = { + factor = 10 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_very_strong_homicidal_empire + } + # More likely to declare on very powerful homicidal empires + modifier = { + factor = 5 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = superior + } + } + desc = gal_com_target_is_strong_homicidal_empire + } + + # More likely to declare on rivals + modifier = { + factor = 2 + is_rival = from + desc = gal_com_target_is_rival + } + + # Never on yourself + modifier = { + factor = 0 + is_same_value = from + desc = gal_com_target_is_me + } + + # More likely to declare on a crisis country that has started cracking stars + modifier = { + factor = 6 + from = { has_country_flag = cracked_first_star } + desc = gal_com_target_has_cracked_stars + } + + # Should be reluctant to use on normal countries + modifier = { + factor = 0.2 + OR = { + from = { + is_homicidal = no + NOR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + is_at_war_with = root + } + } + } + desc = gal_com_target_is_a_normal_empire + } + + # Very unlikely to use on Custodian + modifier = { + factor = 0.2 + from = { is_galactic_custodian = yes } + desc = gal_com_target_is_the_custodian + } + + # Unlikely to use on scary Fallen Empire + modifier = { + factor = 0.2 + from = { + is_fallen_empire = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_powerful_fallen_empire + } + + modifier = { + factor = 0.5 + from = { + NOR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + } + desc = gal_com_target_does_not_have_crisis_perk + } + + modifier = { + factor = 2 + from = { + has_crisis_level = crisis_level_3 + } + has_intel_level = { + who = from + category = government + level >= 2 + } + desc = gal_com_crisis_level_3 + } + + modifier = { + factor = 2 + from = { + has_crisis_level = crisis_level_4 + } + desc = gal_com_crisis_level_4 + } + + modifier = { + factor = 5 + from = { + has_crisis_level = crisis_level_5 + } + desc = gal_com_crisis_level_5 + } + } +} + +resolution_repeal_crisis = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + + valid_target = { + OR = { + is_country_type = default + is_fallen_empire = yes + } + has_country_flag = declared_crisis + } + + effect = { + hidden_effect = { + remove_country_flag = declared_crisis + save_event_target_as = former_crisis + random_war = { + limit = { + using_war_goal = { + type = wg_declared_crisis + owner = event_target:former_crisis + } + } + every_war_participant = { + limit = { + NOT = { is_same_value = event_target:former_crisis } + } + country_event = { id = crisis.4110 } + } + every_war_participant = { + prev = { + remove_war_participant = prev + } + } + } + country_event = { id = crisis.4111 } + } + } + + potential = { + has_galactic_emperor = no + has_nemesis = yes + } + + ai_weight = { + base = @resolution_weight_hated + + # More likely to repeal if it's a normal country + modifier = { + factor = 4 + from = { + is_homicidal = no + NOR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + has_crisis_level = crisis_level_5 + } + } + desc = gal_com_target_is_a_normal_empire + } + + # Should be very unlikely to repeal end game crisis country + modifier = { + factor = 0.2 + from = { + OR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + } + } + desc = gal_com_target_is_a_crisis_empire + } + + # Unlikely to repeal very powerful homicidal countries + modifier = { + factor = 0.2 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_strong_homicidal_empire + } + } +} + +resolution_declare_crisis_empire = { + icon = "GFX_resolution_declare_crisis" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = yes + + valid_target = { + NOT = { is_same_value = from } + is_galactic_emperor = no + OR = { + is_country_type = default + AND = { + is_fallen_empire = yes + NOT = { has_global_flag = war_in_heaven_ongoing } + } + } + NOT = { has_country_flag = declared_crisis } + } + + modifier = { + starbase_shipyard_build_speed_mult = 0.20 + ships_upkeep_mult = -0.1 + } + + effect = { + custom_tooltip = resolution_declare_crisis_empire_tooltip + hidden_effect = { + if = { + limit = { is_galactic_community_member = yes } + remove_from_galactic_community = yes + } + if = { + limit = { + is_galactic_council_established = yes + is_part_of_galactic_council = yes + } + remove_from_galactic_council = yes + } + every_subject = { + if = { + limit = { is_galactic_community_member = yes } + remove_from_galactic_community = yes + } + if = { + limit = { + is_galactic_council_established = yes + is_part_of_galactic_council = yes + } + remove_from_galactic_council = yes + } + } + + set_country_flag = declared_crisis + save_event_target_as = new_crisis + country_event = { id = crisis.4106 } + every_playable_country = { + limit = { + is_ai = no + NOT = { is_same_value = prev } + } + country_event = { id = crisis.4101 } + } + galactic_emperor = { + save_event_target_as = community_war_leader + } + declare_crisis_war_effect = yes + } + } + + potential = { + has_galactic_emperor = yes + has_nemesis = yes + is_part_of_galactic_council = yes + } + + ai_weight = { + base = @resolution_weight_hated + + # Should almost always declare on Crisis countries in end game + modifier = { + factor = 50 + from = { + has_country_flag = crisis_sphere_revealed + } + desc = gal_com_crisis_sphere_revealed + } + + # More likely to declare on very powerful homicidal empires + modifier = { + factor = 10 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_very_strong_homicidal_empire + } + # More likely to declare on very powerful homicidal empires + modifier = { + factor = 5 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = superior + } + } + desc = gal_com_target_is_strong_homicidal_empire + } + + # More likely to declare on rivals + modifier = { + factor = 2 + is_rival = from + desc = gal_com_target_is_rival + } + + # Never on yourself + modifier = { + factor = 0 + is_same_value = from + desc = gal_com_target_is_me + } + + # More likely to declare on empire who hvae cracked a star + modifier = { + factor = 6 + from = { has_country_flag = cracked_first_star } + desc = gal_com_target_has_cracked_stars + } + + # Should be reluctant to use on normal countries + modifier = { + factor = 0.2 + OR = { + from = { + is_homicidal = no + NOR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + } + } + } + desc = gal_com_target_is_a_normal_empire + } + + # Very unlikely to use on Custodian + modifier = { + factor = 0.2 + from = { is_galactic_custodian = yes } + desc = gal_com_target_is_the_custodian + } + + # Unlikely to use on scary Fallen Empire + modifier = { + factor = 0.2 + from = { + is_fallen_empire = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_powerful_fallen_empire + } + } +} + +resolution_repeal_crisis_empire = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + + valid_target = { + OR = { + is_country_type = default + is_fallen_empire = yes + } + has_country_flag = declared_crisis + } + + effect = { + hidden_effect = { + remove_country_flag = declared_crisis + save_event_target_as = former_crisis + random_playable_country = { + limit = { is_galactic_emperor = yes } + save_event_target_as = gal_emperor + } + random_war = { + limit = { + using_war_goal = { + type = wg_declared_crisis + owner = event_target:former_crisis + } + } + every_war_participant = { + limit = { + NOT = { is_same_value = event_target:former_crisis } + } + country_event = { id = crisis.4112 } + } + every_war_participant = { + prev = { + remove_war_participant = prev + } + } + } + country_event = { id = crisis.4113 } + } + } + + potential = { + has_galactic_emperor = yes + has_nemesis = yes + } + + ai_weight = { + base = @resolution_weight_hated + + # More likely to repeal if it's a normal country + modifier = { + factor = 4 + from = { + is_homicidal = no + NOR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + } + } + desc = gal_com_target_is_a_normal_empire + } + + # Should be very unlikely to repeal end game crisis country + modifier = { + factor = 0.2 + from = { + OR = { + has_country_flag = crisis_sphere_revealed + has_country_flag = cracked_first_star + } + } + desc = gal_com_target_is_a_crisis_empire + } + + # Unlikely to repeal very powerful homicidal countries + modifier = { + factor = 0.2 + from = { + is_homicidal = yes + relative_power = { + who = prev + category = fleet + value = overwhelming + } + } + desc = gal_com_target_is_very_strong_homicidal_empire + } + } +} + +### GALACTIC CUSTODIANSHIP + +# Nominate Custodian +resolution_galacticreforms_nominate_custodian = { + icon = "GFX_resolution_nominate_custodian" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + custom_tooltip = { + fail_text = "nominate_other_custodian_requires_independence" + is_subject = no + } + custom_tooltip = { + fail_text = "nominate_other_custodian_not_crisis" + NOR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + has_valid_civic = civic_pompous_purists + } + } + } + + effect = { + set_galactic_custodian = yes + hidden_effect = { + country_event = { id = custodian.1 } + if = { + limit = { has_global_flag = gdf_active } + country_event = { id = custodian.35 days = 10 } + } + } + } + + potential = { + has_nemesis = yes + is_galactic_council_established = yes + has_galactic_custodian = no + has_galactic_emperor = no + } + + allow = { + custom_tooltip = { + fail_text = "nominate_custodian_requires_independence" + is_subject = no + } + custom_tooltip = { + fail_text = "nominate_custodian_not_crisis" + NOR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + } + } + + active = { + has_galactic_custodian = no + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + is_same_value = from + desc = gal_com_target_is_me + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 0 + is_rival = from + desc = gal_com_target_is_rival + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Unseat Custodian +resolution_galacticreforms_unseat_custodian = { + icon = "GFX_resolution_end_custodianship" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = yes + harmful = yes + valid_target = { + is_galactic_custodian = yes + } + + modifier = { + } + + effect = { + custom_tooltip = resolution_galacticreforms_unseat_custodian_tooltip + hidden_effect = { + if = { + limit = { is_active_resolution = "resolution_custodian_perpetual_custodianship" } + cancel_resolution = "resolution_custodian_perpetual_custodianship" + } + country_event = { id = custodian.16 } + } + } + + fail_effects = { + } + + potential = { + is_galactic_custodian = no + } + + active = { + has_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 0.2 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.2 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 0.2 + has_global_flag = gray_goo_crisis_active + desc = gal_com_ongoing_grey_goo_crisis + } + + modifier = { + factor = 0.2 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_ongoing_great_khan_crisis + } + + modifier = { + factor = 0.2 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 0.1 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 0 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 0 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 0 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 20 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 20 + is_rival = from + desc = gal_com_target_is_rival + } + + modifier = { + factor = 0.2 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 0.2 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Form the Galactic Empire +resolution_custodian_form_empire = { + icon = "GFX_resolution_form_galactic_empire" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + if = { + limit = { is_gestalt = no } + custom_tooltip = resolution_custodian_form_empire_tooltip + } + if = { + limit = { is_machine_empire = yes } + custom_tooltip = resolution_custodian_form_empire_tooltip_machine + } + if = { + limit = { is_hive_empire = yes } + custom_tooltip = resolution_custodian_form_empire_tooltip_hive + } + hidden_effect = { + random_playable_country = { + limit = { is_galactic_custodian = yes } + country_event = { id = emperor.1 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + is_active_resolution = "resolution_custodian_perpetual_custodianship" + has_galactic_emperor = no + } + + allow = { + custom_tooltip = { + fail_text = "requires_no_war_in_heaven" + NOT = { has_global_flag = war_in_heaven_ongoing } # Can't become Emperor during WiH + } + } + + active = { + has_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 10 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 20 + is_galactic_custodian = yes + is_authoritarian = yes + desc = gal_com_authoritarian_custodian + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + } +} + +# United Front +resolution_custodian_united_front = { + icon = "GFX_resolution_united_front" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + description = resolution_custodian_united_front_modifier_desc + damage_vs_country_type_synth_queen_mult = 0.2 + damage_vs_country_type_swarm_mult = 0.2 + damage_vs_country_type_extradimensional_mult = 0.2 + damage_vs_country_type_extradimensional_2_mult = 0.2 + damage_vs_country_type_extradimensional_3_mult = 0.2 + damage_vs_country_type_ai_empire_mult = 0.2 + damage_vs_country_type_gray_goo_mult = 0.2 + damage_vs_player_crisis_mult = 0.2 + country_energy_produces_mult = -0.03 + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_united_front } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + any_country = { is_crisis_faction = yes } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 1.6 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_militarist = yes + is_galactic_custodian = yes + desc = gal_com_militarist_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Galactic Mobilization +resolution_custodian_galactic_mobilization = { + icon = "GFX_resolution_galactic_mobilization" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + triggered_modifier = { + potential = { + is_gestalt = no + } + modifier = { + resolution_custodian_galactic_mobilization = 1 + } + } + + triggered_modifier = { + potential = { + is_gestalt = yes + } + modifier = { + resolution_custodian_galactic_mobilization_gestalt = 1 + } + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_galactic_mobilization } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 1.6 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.6 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_militarist = yes + is_galactic_custodian = yes + desc = gal_com_militarist_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Introduce Galactic Standard +resolution_custodian_galactic_standard = { + icon = "GFX_resolution_galactic_standard" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_galactic_standard = 1 + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_galactic_standard } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 1.25 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Anti-Piracy Initiative +resolution_custodian_anti_piracy = { + icon = "GFX_resolution_anti_piracy_initiative" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + description = resolution_custodian_anti_piracy_modifier_desc + local_trade_protection_add = 5 + damage_vs_country_type_pirate_mult = 0.2 + damage_vs_country_type_dormant_marauders_mult = 0.2 + damage_vs_country_type_awakened_marauders_mult = 0.2 + country_energy_produces_mult = -0.03 + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_anti_piracy } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.5 + is_gestalt = yes + NOT = { + any_neighbor_country = { is_country_type = dormant_marauders } + } + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Extend Custodianship +resolution_custodian_extend_custodianship = { + icon = "GFX_resolution_term_limits" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_custodian_extend_custodianship_tooltip + hidden_effect = { + add_custodian_term_days = 10800 + set_country_flag = extended_custodianship + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + NOT = { + is_active_resolution = "resolution_custodian_perpetual_custodianship" + has_country_flag = extended_custodianship + } + } + + active = { + has_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_authoritarian = yes + is_galactic_custodian = yes + desc = gal_com_authoritarian_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Remove Custodianship Term Limit +resolution_custodian_perpetual_custodianship = { + icon = "GFX_resolution_term_limits" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_custodian_perpetual_custodianship_tooltip + hidden_effect = { + set_custodian_term_days = -1 # -1 means that the timer will stop counting + } + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_perpetual_custodianship } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + active = { + has_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 0.4 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0 + has_ai_personality = democratic_crusaders + desc = personality_democratic_crusaders + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_authoritarian = yes + is_galactic_custodian = yes + desc = gal_com_authoritarian_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Prematurely End Custodianship +resolution_custodian_end_custodianship = { + icon = "GFX_resolution_end_custodianship" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_custodian_end_custodianship_tooltip + hidden_effect = { + country_event = { id = custodian.14 } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + active = { + has_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Galactic Defense force +resolution_custodian_gdf = { + icon = "GFX_resolution_galactic_defense_force" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_gdf } + } + } + + modifier = { + resolution_custodian_gdf = 1 + } + + effect = { + set_galactic_defense_force = yes + hidden_effect = { + set_global_flag = gdf_active + random_playable_country = { + limit = { is_galactic_custodian = yes } + save_event_target_as = custodian + } + every_playable_country = { + limit = { is_ai = no } + country_event = { id = custodian.30 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.6 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 1.4 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 14 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 14 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 14 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_militarist = yes + is_galactic_custodian = yes + desc = gal_com_militarist_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Expand GDF +resolution_custodian_expand_gdf = { + icon = "GFX_resolution_expand_gdf" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_expand_gdf } + } + } + + modifier = { + resolution_custodian_gdf_2 = 1 + country_community_gdf_naval_capacity = 400 + } + + effect = { + hidden_effect = { + if = { + limit = { + has_global_flag = independent_gdf + exists = event_target:gdf_country + } + event_target:gdf_country = { + remove_modifier = "gdf_naval_cap" + add_modifier = { modifier = gdf_naval_cap_2 } + } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + is_active_resolution = "resolution_custodian_gdf" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.6 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 1.4 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_militarist = yes + is_galactic_custodian = yes + desc = gal_com_militarist_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Disband the GDF +resolution_custodian_disband_gdf = { + icon = "GFX_resolution_disband_gdf" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_galactic_defense_force = no + hidden_effect = { + cancel_resolution = "resolution_custodian_gdf" + remove_global_flag = gdf_active + if = { + limit = { has_global_flag = independent_gdf } + remove_global_flag = independent_gdf + } + if = { + limit = { exists = event_target:gdf_country } + event_target:gdf_country = { + every_controlled_fleet = { delete_fleet = this } + destroy_country = yes + } + } + if = { + limit = { is_active_resolution = "resolution_custodian_expand_gdf" } + cancel_resolution = "resolution_custodian_expand_gdf" + } + every_playable_country = { + limit = { is_ai = no } + country_event = { id = custodian.40 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_active_resolution = "resolution_custodian_gdf" + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 1.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.2 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.2 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.2 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.2 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.2 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 0.1 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 0 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 0 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 0 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 20 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 0.2 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 0.2 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Interstellar Navigation Agency +resolution_custodian_ina = { + icon = "GFX_resolution_form_ina" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_ina = 1 + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_ina } + } + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.8 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 1.2 + has_ai_personality = peaceful_traders + desc = personality_peaceful_traders + } + + modifier = { + factor = 1.2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 2 + has_ai_personality = erudite_explorers + desc = personality_erudite_explorers + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Disband the Interstellar Navigation Agency +resolution_custodian_disband_ina = { + icon = "GFX_resolution_disband_ina" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + cancel_resolution = "resolution_custodian_ina" + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_active_resolution = "resolution_custodian_ina" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.8 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.4 + has_ai_personality = erudite_explorers + desc = personality_erudite_explorers + } + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Galactic Trade Organization +resolution_custodian_gto = { + icon = "GFX_resolution_form_gto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_gto = 1 + } + + active = { + has_galactic_emperor = no + } + + effect = { + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + has_galactic_emperor = no + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_custodian_gto } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 1.5 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 0.7 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Disband the Galactic Trade Organization +resolution_custodian_disband_gto = { + icon = "GFX_resolution_disband_gto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + cancel_resolution = "resolution_custodian_gto" + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_active_resolution = "resolution_custodian_gto" + has_galactic_emperor = no + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.6 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 0.6 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 1.3 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.8 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# GALPOL +resolution_custodian_galpol = { + icon = "GFX_resolution_form_galpol" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_galpol = 1 + } + + effect = { + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_custodian = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_custodian_galpol" } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + any_owned_planet = { + planet_crime > 40 + } + desc = gal_com_owns_high_crime_planet + } + + modifier = { + factor = 2 + any_owned_planet = { + has_branch_office = yes + branch_office_owner = { is_criminal_syndicate = yes } + } + desc = gal_com_owns_planet_with_criminal_syndicate_branch_office + } + + modifier = { + factor = 0 + is_criminal_syndicate = yes + desc = gov_criminal_syndicate + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +# Disband GALPOL +resolution_custodian_disband_galpol = { + icon = "GFX_resolution_disband_galpol" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + cancel_resolution = "resolution_custodian_galpol" + } + + fail_effects = { + } + + potential = { + is_active_resolution = "resolution_custodian_galpol" + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 6 + is_criminal_syndicate = yes + desc = gov_criminal_syndicate + } + + modifier = { + factor = 1.8 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.4 + any_owned_planet = { + planet_crime > 40 + } + desc = gal_com_owns_high_crime_planet + } + + modifier = { + factor = 0.2 + any_owned_planet = { + has_branch_office = yes + branch_office_owner = { is_criminal_syndicate = yes } + } + desc = gal_com_owns_planet_with_criminal_syndicate_branch_office + } + + modifier = { + factor = 0 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + } +} + +### GALACTIC EMPIRE + +# Imperial Crusade +resolution_galactic_empire_imperial_crusade = { + icon = "GFX_resolution_imperial_crusade" + + potential = { + has_galactic_emperor = yes + NOT = { # Only one crusade at a time + any_war = { + using_war_goal = { + type = wg_imperial_crusade + owner = attacker + } + } + } + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = no + NOR = { + has_country_flag = imperial_crusade_target + has_country_flag = empire_rebel + } + is_homicidal = no + NOT = { is_at_war_with = galactic_emperor } + } + + allow = { + imperial_authority >= 140 + } + + active = { + has_galactic_emperor = yes + from = { is_at_war_with = galactic_emperor } + } + + effect = { + custom_tooltip = resolution_imperial_crusade_tooltip + hidden_effect = { + save_event_target_as = crusade_target + galactic_emperor = { + save_event_target_as = gal_emperor + declare_war = { + target = event_target:crusade_target + name = "NAME_Imperial_Crusade_War" + attacker_war_goal = "wg_imperial_crusade" + } + } + random_war = { + limit = { + using_war_goal = { + type = wg_imperial_crusade + owner = event_target:gal_emperor + } + } + save_event_target_as = imperial_crusade_war + } + every_playable_country = { + limit = { + is_galactic_emperor = no + is_galactic_community_member = yes + NOR = { + is_in_federation_with = event_target:crusade_target + AND = { + exists = overlord + overlord = { is_same_value = event_target:crusade_target } + } + } + } + if = { + limit = { + any_war = { + any_war_participant = { + is_same_value = event_target:crusade_target + } + } + } + every_war = { + limit = { + any_war_participant = { + is_same_value = event_target:crusade_target + } + } + remove_war_participant = event_target:crusade_target + } + } + join_war_on_side = { + war = event_target:imperial_crusade_war + side = event_target:gal_emperor + } + } + event_target:crusade_target = { + country_event = { id = emperor.350 } + } + every_playable_country = { + limit = { + is_ai = no + has_communications = event_target:gal_emperor + has_communications = event_target:crusade_target + NOT = { is_same_value = event_target:crusade_target } + } + country_event = { id = emperor.351 } + } + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.2 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.4 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 2 + is_rival = from + desc = gal_com_proposer_is_rival + } + } +} + +# United Front (Imperial version) +resolution_emperor_united_front = { + icon = "GFX_resolution_united_front" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + description = resolution_custodian_united_front_modifier_desc + damage_vs_country_type_synth_queen_mult = 0.2 + damage_vs_country_type_swarm_mult = 0.2 + damage_vs_country_type_extradimensional_mult = 0.2 + damage_vs_country_type_extradimensional_2_mult = 0.2 + damage_vs_country_type_extradimensional_3_mult = 0.2 + damage_vs_country_type_ai_empire_mult = 0.2 + damage_vs_country_type_gray_goo_mult = 0.2 + damage_vs_player_crisis_mult = 0.2 + country_energy_produces_mult = -0.03 + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_united_front" } + } + } + + effect = { + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + any_country = { is_crisis_faction = yes } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 1.6 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0 + OR = { + has_ascension_perk = ap_become_the_crisis + has_ascension_perk = ap_cosmogenesis + } + desc = gal_com_we_have_crisis_perk + } + + modifier = { + factor = 4 + is_galactic_custodian = yes + desc = gal_com_is_the_custodian + } + + modifier = { + factor = 20 + is_militarist = yes + is_galactic_custodian = yes + desc = gal_com_militarist_custodian + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Imperial Armada +resolution_emperor_imperial_armada = { + icon = "GFX_resolution_imperial_armada" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_gdf = 1 + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_imperial_armada" } + } + } + + effect = { + if = { + limit = { galactic_defense_force_exists = no } #e.g. Custodian becomes Emperor + set_galactic_defense_force = yes + } + hidden_effect = { + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = emperor.50 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.6 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + desc = galactic_emperor + } + + modifier = { + factor = 0 + is_subject = yes + overlord = { + OR = { + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + desc = gal_com_subject_of_fallen_empire + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Expand Imperial Armada +resolution_emperor_expand_ia = { + icon = "GFX_resolution_expand_armada" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_expand_ia" } + } + } + + modifier = { + resolution_custodian_gdf_2 = 1 + country_community_gdf_naval_capacity = 400 + } + + effect = { + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_active_resolution = "resolution_emperor_imperial_armada" + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.6 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 8 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 8 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + desc = galactic_emperor + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Imperial Legions +resolution_emperor_imperial_legions = { + icon = "GFX_resolution_imperial_legions" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_imperial_legions" } + } + } + + modifier = { + } + + effect = { + random_playable_country = { + limit = { is_galactic_emperor = yes } + custom_tooltip = resolution_emperor_imperial_legions_tooltip + } + hidden_effect = { + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = emperor.55 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.4 + is_pacifist = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_pacifist + } + + modifier = { + factor = 0.6 + is_xenophobe = yes + NOT = { + any_neighbor_country = { is_crisis_faction = yes } + } + desc = ethic_xenophobe + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 12 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 6 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 8 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 20 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 20 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 14 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 8 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 14 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + desc = galactic_emperor + } + + modifier = { + factor = 10 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 20 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Imperial Navigation Agency +resolution_emperor_ina = { + icon = "GFX_resolution_form_ina" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_ina = 1 + } + + effect = { + } + + fail_effects = { + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_ina" } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.8 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 1.2 + has_ai_personality = peaceful_traders + desc = personality_peaceful_traders + } + + modifier = { + factor = 1.2 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 2 + has_ai_personality = erudite_explorers + desc = personality_erudite_explorers + } + + modifier = { + factor = 4 + is_galactic_emperor = yes + desc = galactic_emperor + } + } +} + +# Disband the Interstellar Navigation Agency +resolution_emperor_disband_ina = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + cancel_resolution = "resolution_emperor_ina" + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_active_resolution = "resolution_emperor_ina" + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.2 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.8 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.4 + has_ai_personality = erudite_explorers + desc = personality_erudite_explorers + } + + modifier = { + factor = 0 + is_galactic_emperor = yes + desc = galactic_emperor + } + } +} + +# Galactic Trade Organization +resolution_emperor_gto = { + icon = "GFX_resolution_form_gto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + resolution_custodian_gto = 1 + } + + effect = { + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = resolution_emperor_gto } + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.5 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 1.5 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 0.7 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 0.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 4 + is_galactic_emperor = yes + desc = galactic_emperor + } + } +} + +# Disband the Galactic Trade Organization +resolution_emperor_disband_gto = { + icon = "GFX_resolution_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + cancel_resolution = "resolution_emperor_gto" + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_active_resolution = "resolution_emperor_gto" + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.6 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 0.6 + OR = { + has_ai_personality = peaceful_traders + has_ai_personality = ruthless_capitalists + } + desc = gal_com_trader_ai_personality + } + + modifier = { + factor = 1.3 + is_xenophobe = yes + desc = ethic_xenophobe + } + + modifier = { + factor = 1.8 + has_ai_personality = xenophobic_isolationists + desc = personality_xenophobic_isolationists + } + + modifier = { + factor = 2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_galactic_emperor = yes + desc = galactic_emperor + } + } +} + +# Imperial Security Directorate +resolution_emperor_isd = { + icon = "GFX_resolution_imperial_security_directorate" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_isd" } + } + } + + modifier = { + resolution_emperor_isd = 1 + } + + effect = { + random_playable_country = { + limit = { is_galactic_emperor = yes } + add_modifier = { modifier = "imperial_security_directorate" } + } + hidden_effect = { + every_playable_country = { + limit = { is_galactic_community_member = yes } + country_event = { id = emperor.70 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + any_owned_planet = { + planet_crime > 40 + } + desc = gal_com_owns_high_crime_planet + } + + modifier = { + factor = 2 + any_owned_planet = { + has_branch_office = yes + branch_office_owner = { is_criminal_syndicate = yes } + } + desc = gal_com_owns_planet_with_criminal_syndicate_branch_office + } + + modifier = { + factor = 0 + is_criminal_syndicate = yes + desc = gov_criminal_syndicate + } + + modifier = { + factor = 0.6 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + desc = galactic_emperor + } + } +} + +# Imperial Charter +resolution_emperor_imperial_charter = { + icon = "GFX_resolution_imperial_trade_company" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = yes + harmful = no + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_imperial_charter" } + } + } + + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_megacorp = yes + is_galactic_emperor = no + } + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_imperial_charter_tooltip + hidden_effect = { + set_global_flag = imperial_charter_granted + add_modifier = { modifier = imperial_charter } + random_playable_country = { + limit = { is_galactic_emperor = yes } + set_variable = { + which = "imp_concession_ports" + value = 0 + } + } + every_playable_country = { + limit = { + is_ai = no + NOT = { is_same_value = prev } + is_galactic_community_member = yes + is_galactic_emperor = no + } + country_event = { id = emperor.60 } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + NOR = { + has_civic = civic_galactic_sovereign_megacorp # Megacorp Emperors build their own concession ports + has_global_flag = imperial_charter_granted + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + desc = galactic_emperor + } + + modifier = { + factor = 20 + is_same_value = from + desc = gal_com_target_is_me + } + } +} + +# Revoke Imperial Charter +resolution_emperor_revoke_imperial_charter = { + icon = "GFX_resolution_imperial_trade_company" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = yes + harmful = yes + + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_megacorp = yes + is_galactic_emperor = no + has_modifier = imperial_charter + } + + modifier = { + } + + effect = { + hidden_effect = { + remove_global_flag = imperial_charter_granted + remove_modifier = imperial_charter + every_galaxy_planet = { + limit = { has_planet_flag = imp_concession_port } + remove_holding = { + holding = building_imperial_concession_port + owner = galactic_emperor + } + remove_planet_flag = imp_concession_port + } + random_playable_country = { + limit = { is_galactic_emperor = yes } + set_variable = { + which = "imp_concession_ports" + value = 0 + } + add_imp_concession_ports_0 = yes + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + has_global_flag = imperial_charter_granted + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 1.4 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 20 + is_galactic_emperor = yes + OR = { + is_hostile_to = FROM + is_domineering_to = FROM + is_unfriendly_to = FROM + } + desc = gal_com_emperor_unfriendly_to_proposer + } + } +} + +### IMPERIAL COUNCIL + +# Abolish Imperial Council +resolution_emperor_abolish_council = { + icon = "GFX_resolution_abolish_imperial_council" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_abolish_council_tooltip + hidden_effect = { + set_council_size = 0 + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 0 + is_part_of_galactic_council = yes + is_galactic_emperor = no + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.5 + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + is_part_of_galactic_council = yes + is_galactic_emperor = no + } + desc = gal_com_support_overlord_on_galatic_council + } + } +} + +# Restore Imperial Council +resolution_emperor_restore_council = { + icon = "GFX_resolution_imperial_council" + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = no + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + } + + allow = { + } + + active = { + has_galactic_emperor = yes + } + + effect = { + custom_tooltip = resolution_emperor_restore_council_tooltip + hidden_effect = { + set_council_size = 3 + set_council_veto = no + set_global_flag = galactic_community_resolution_passed + + set_global_flag = resolution_with_breach_effect_passed # council denouncement + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + OR = { + has_civic = civic_diplomatic_corps + has_civic = civic_public_relations_specialists + has_civic = civic_hive_empath + has_civic = civic_machine_servitor + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.5 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + desc = gal_com_they_or_overlord_high_ranked + } + + modifier = { + factor = 0.8 + galactic_community_rank > 5 + NAND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + desc = gal_com_neither_they_or_overlord_high_ranked + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + } +} + +resolution_emperor_council_size_1 = { + icon = "GFX_resolution_imperial_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 1 + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + num_council_positions = 2 + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_hated + + modifier = { + factor = 3 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 0 + galactic_community_rank = 2 + desc = gal_com_second_rank + } + + modifier = { + factor = 0.8 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + is_authoritarian = yes + desc = ethic_authoritarian + } + } +} + +resolution_emperor_council_size_2 = { + icon = "GFX_resolution_imperial_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 2 + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + OR = { + num_council_positions = 1 + num_council_positions = 3 + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 1 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + num_council_positions = 3 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + + num_council_positions = 1 + OR = { + galactic_community_rank = 1 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 1 + } + } + } + desc = gal_com_alone_on_council_or_overlord + } + + + modifier = { + factor = 3 + + num_council_positions = 3 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 3 + num_council_positions = 1 + OR = { + galactic_community_rank = 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 2 + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + num_council_positions = 3 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.8 + num_council_positions = 1 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + num_council_positions = 3 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + num_council_positions = 1 + is_egalitarian = yes + desc = ethic_egalitarian + } + } +} + +resolution_emperor_council_size_3 = { + icon = "GFX_resolution_imperial_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 3 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + OR = { + num_council_positions = 2 + num_council_positions = 4 + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 2 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + num_council_positions = 4 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + + num_council_positions = 2 + OR = { + galactic_community_rank <= 2 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 2 + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + modifier = { + factor = 3 + + num_council_positions = 4 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 3 + AND = { + num_council_positions = 2 + OR = { + galactic_community_rank = 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 3 + } + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + num_council_positions = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.8 + num_council_positions = 4 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + num_council_positions = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + num_council_positions = 4 + is_authoritarian = yes + desc = ethic_authoritarian + } + } +} + +resolution_emperor_council_size_4 = { + icon = "GFX_resolution_imperial_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 4 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + OR = { + num_council_positions = 3 + num_council_positions = 5 + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { # raising the number of slots is more popular than lowering it + factor = 1.25 + num_council_positions = 3 + desc = gal_com_increase_council_size_positive + } + + modifier = { + factor = 0 + + num_council_positions = 5 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + desc = gal_com_they_or_overlord_would_be_removed_from_council + } + + modifier = { + factor = 0 + + num_council_positions = 3 + OR = { + galactic_community_rank <= 3 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 3 + } + } + } + desc = gal_com_dont_let_others_in_on_the_council + } + + modifier = { + factor = 3 + + num_council_positions = 5 + OR = { + galactic_community_rank <= 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank <= 4 + } + } + } + desc = gal_com_wants_to_reduce_council_size + } + + modifier = { + factor = 3 + + num_council_positions = 3 + OR = { + galactic_community_rank = 4 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 4 + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + + modifier = { + factor = 0.8 + num_council_positions = 5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.8 + num_council_positions = 3 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + num_council_positions = 5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + num_council_positions = 3 + is_egalitarian = yes + desc = ethic_egalitarian + } + } +} + +resolution_emperor_council_size_5 = { + icon = "GFX_resolution_imperial_council_size" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + set_council_size = 5 + set_global_flag = galactic_council_formed + + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + num_council_positions = 4 + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 3 + num_council_positions = 4 + OR = { + galactic_community_rank = 5 + AND = { + is_subject = yes + overlord = { + opinion_level = { who = prev level >= neutral } + galactic_community_rank = 5 + } + } + } + desc = gal_com_wants_to_add_themselves_or_overlord_to_council + } + + modifier = { + factor = 0.8 + is_part_of_galactic_council = yes + desc = gal_com_on_galatic_council + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_egalitarian = yes + desc = ethic_egalitarian + } + } +} + +# Permanent Seat +resolution_emperor_permanent_seat = { + icon = "GFX_resolution_imperial_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = no + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = no + is_galactic_emperor = no + } + + effect = { + add_permanent_councillor = yes + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + NOR = { + is_active_resolution = "resolution_emperor_trial_of_advancement" + is_active_resolution = "resolution_emperor_by_appointment" + } + } + + active = { + has_galactic_emperor = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_permanent_seat" } + } + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +# Revoke Permanent Seat +resolution_emperor_revoke_permanent_seat = { + icon = "GFX_resolution_imperial_council_member_permanent" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + + target = yes + harmful = yes + valid_target = { + is_country_type = default + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_permanent_councillor = yes + is_galactic_emperor = no + } + + effect = { + remove_permanent_councillor = yes + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_galactic_council_established = yes + NOR = { + is_active_resolution = "resolution_emperor_trial_of_advancement" + is_active_resolution = "resolution_emperor_by_appointment" + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_disliked + } +} + +# Trial of Advancement +resolution_emperor_trial_of_advancement = { + icon = "GFX_resolution_imperial_council_trial" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_trial_of_advancement_tooltip + hidden_effect = { + # Suspend Council Elections + every_playable_country = { + limit = { + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_galactic_emperor = no + } + add_permanent_councillor = yes + } + if = { + limit = { is_active_resolution = "resolution_emperor_by_appointment" } + cancel_resolution = "resolution_emperor_by_appointment" + } + else_if = { + limit = { is_active_resolution = "resolution_emperor_by_election" } + cancel_resolution = "resolution_emperor_by_election" + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_trial_of_advancement" } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + weight = 10 + is_part_of_galactic_council = no + any_playable_country = { + is_part_of_galactic_council = yes + is_galactic_emperor = no + relative_power = { + who = prev + category = fleet + value <= equivalent + } + } + desc = gal_com_stronger_than_council_member + } + + modifier = { + weight = 0 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + weight = 1.6 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + weight = 4 + has_ai_personality = honorbound_warriors + desc = personality_honorbound_warriors + } + + modifier = { + weight = 4 + has_civic = civic_warrior_culture + desc = civic_warrior_culture + } + + modifier = { + weight = 0 + is_part_of_galactic_council = yes + is_galactic_emperor = no + any_playable_country = { + is_part_of_galactic_council = no + relative_power = { + who = prev + category = fleet + value >= equivalent + } + } + desc = gal_com_weaker_than_non_council_member + } + } +} + +# By Appointment +resolution_emperor_by_appointment = { + icon = "GFX_resolution_imperial_council_appointment" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_by_appointment_tooltip + hidden_effect = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_galactic_emperor = no + } + add_permanent_councillor = yes + } + set_emperor_can_change_council_members = yes + if = { + limit = { is_active_resolution = "resolution_emperor_trial_of_advancement" } + cancel_resolution = "resolution_emperor_trial_of_advancement" + } + else_if = { + limit = { is_active_resolution = "resolution_emperor_by_election" } + cancel_resolution = "resolution_emperor_by_election" + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_by_appointment" } + } + } + + ai_weight = { + base = @resolution_weight_hated + } +} + +# By Election +resolution_emperor_by_election = { + icon = "GFX_resolution_imperial_council_diplomatic_weight" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_by_election_tooltip + hidden_effect = { + # Restore Council Elections + every_playable_country = { + limit = { + is_galactic_community_member = yes + is_part_of_galactic_council = yes + is_galactic_emperor = no + is_permanent_councillor = yes + } + remove_permanent_councillor = yes + } + if = { + limit = { is_active_resolution = "resolution_emperor_trial_of_advancement" } + cancel_resolution = "resolution_emperor_trial_of_advancement" + } + else_if = { + limit = { is_active_resolution = "resolution_emperor_by_appointment" } + cancel_resolution = "resolution_emperor_by_appointment" + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + active = { + has_galactic_emperor = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_by_election" } + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 10 + num_council_positions = 1 + galactic_community_rank = 1 + is_part_of_galactic_council = no + desc = gal_com_empire_council_candidate + } + + modifier = { + factor = 10 + num_council_positions = 2 + galactic_community_rank = 2 + is_part_of_galactic_council = no + desc = gal_com_empire_council_candidate + } + + modifier = { + factor = 10 + num_council_positions = 3 + galactic_community_rank = 3 + is_part_of_galactic_council = no + desc = gal_com_empire_council_candidate + } + + modifier = { + factor = 10 + num_council_positions = 4 + galactic_community_rank = 4 + is_part_of_galactic_council = no + desc = gal_com_empire_council_candidate + } + + modifier = { + factor = 10 + num_council_positions = 5 + galactic_community_rank = 5 + is_part_of_galactic_council = no + desc = gal_com_empire_council_candidate + } + + modifier = { + factor = 0 + galactic_community_rank <= 2 + is_part_of_galactic_council = no + desc = gal_com_top_two_rank + } + } +} + +# Pax Galactica +resolution_emperor_pax_galactica = { + icon = "GFX_resolution_pax_galactica" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_pax_galactica_tooltip + hidden_effect = { + every_war = { + limit = { + NOR = { + using_war_goal = { + type = wg_seize_council_seat + owner = attacker + } + using_war_goal = { + type = wg_seize_council_seat + owner = defender + } + using_war_goal = { + type = wg_declared_crisis + owner = attacker + } + } + any_attacker = { is_galactic_community_member = yes } + any_defender = { is_galactic_community_member = yes } + } + every_war_participant = { + limit = { is_galactic_community_member = yes } + prev = { remove_war_participant = prev } + country_event = { id = emperor.360 } + } + } + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + } + + allow = { + imperial_authority >= 180 + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_emperor_pax_galactica" } + } + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 4 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 4 + any_country = { is_crisis_faction = yes } + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 4 + any_neighbor_country = { is_crisis_faction = yes } + desc = gal_com_neighboring_crisis_empire + } + + modifier = { + factor = 4 + has_crisis_stage_1 = yes + desc = gal_com_crisis_stage_1 + } + + modifier = { + factor = 4 + has_crisis_stage_2 = yes + desc = gal_com_crisis_stage_2 + } + + modifier = { + factor = 4 + has_crisis_stage_3 = yes + desc = gal_com_crisis_stage_3 + } + + modifier = { + factor = 4 + has_crisis_stage_4 = yes + desc = gal_com_crisis_stage_4 + } + + modifier = { + factor = 4 + any_playable_country = { has_country_flag = crisis_sphere_revealed } + desc = gal_com_crisis_sphere_revealed + } + + modifier = { + factor = 2 + any_playable_country = { has_been_declared_crisis = yes } + desc = gal_com_someone_declared_crisis + } + + modifier = { + factor = 4 + has_global_flag = gray_goo_crisis_active + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 4 + has_global_flag = marauder_crisis_ongoing + desc = gal_com_someone_is_revealed_crisis + } + + modifier = { + factor = 2 + any_country = { is_country_type = awakened_fallen_empire } + desc = gal_com_exists_awakened_fallen_empire + } + + modifier = { + factor = 4 + has_global_flag = war_in_heaven_ongoing + desc = gal_com_ongoing_war_in_heaven + } + } +} + +# Repeal Pax Galactica +resolution_emperor_repeal_pax_galactica = { + icon = "GFX_resolution_repeal_pax_galactica" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + + modifier = { + } + + effect = { + custom_tooltip = resolution_emperor_repeal_pax_galactica_tooltip + hidden_effect = { + cancel_resolution = "resolution_emperor_pax_galactica" + } + } + + fail_effects = { + } + + potential = { + has_nemesis = yes + is_galactic_emperor = yes + is_active_resolution = "resolution_emperor_pax_galactica" + } + + active = { + has_galactic_emperor = yes + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 4 + is_militarist = yes + desc = ethic_militarist + } + } +} diff --git a/static/resolutions/02_resolutions_overlord.txt b/static/resolutions/02_resolutions_overlord.txt new file mode 100644 index 0000000..b8e8d05 --- /dev/null +++ b/static/resolutions/02_resolutions_overlord.txt @@ -0,0 +1,2098 @@ +@resolution_weight_hated = 3 +@resolution_weight_disliked = 4 +@resolution_weight_unpopular = 5 +@resolution_weight_normal = 6 +@resolution_weight_popular = 6.5 +@resolution_weight_loved = 7 + +@resolution_cost_t1 = 100 +@resolution_cost_t2 = 150 +@resolution_cost_t3 = 200 +@resolution_cost_t4 = 250 +@resolution_cost_t5 = 300 +@resolution_cost_denounce = 25 + +@resolution_flag_timer = 360 + +#example_resolution = { +# icon = "name of the icon key" +# resources = {} # cost and category +# target = yes/no # if this resolution requires a target country +# harmful = yes/no # if the AI should consider this harmful when choosing target +# modifier = {} # modifier to be applied to all community members if passed +# triggered_modifier = {} # triggered modifier to be applied, scope is country +# effect = {} # effect to be applied if passed, scope is proposer unless there is a target country - then scope is target country, with proposer in from scope +# fail_effects = {} # effect to be applied if failed, scope is proposer unless there is a target country - then scope is target country, with proposer in from scope +# potential = {} # potential trigger, scope is country +# allow = {} # allow trigger, scope is country +# active = {} # Enacted resolutions are cancelled if this trigger fails +# +# ai_weight = {} # ai weight modifiers, scope is country. from scope is the target country for targeted resolutions +# NOTE: all ai_weight modifiers are multiplicative. The end result is also multiplied with a factor based on the opinion towards the proposer and/or target, +# see RESOLUTION_TARGET_OPINION_MIN_FACTOR etc. in 00_defines.txt. Also see RESOLUTION_VOTE_SUPPORT_THRESHOLD etc. for balancing the values. +# +# valid_target = {} # valid targets trigger, scope is country +#} + +# NOTE: Remember to add Resolutions to a Resolution Category! + +### DEFENSE PRIVATIZATION + +resolution_defenseprivatization_repeal_1 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_defenseprivatization_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_defenseprivatization_defense_contracts" + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + remove_modifier = resolution_defenseprivatization_defense_contracts_merc_naval_cap + } + } + } + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_defenseprivatization_defense_contracts" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_repeal_2 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_defenseprivatization_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_defenseprivatization_private_support_troops" + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + remove_modifier = resolution_defenseprivatization_private_support_troops_merc_naval_cap + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_defenseprivatization_private_support_troops" + } + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_repeal_3 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_defenseprivatization_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_defenseprivatization_condottieri" + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + remove_modifier = resolution_defenseprivatization_condottieri_merc_naval_cap + } + } + custom_tooltip = resolution_defenseprivatization_private_support_troops_tooltip + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_defenseprivatization_condottieri" + } + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_defenseprivatization_condottieri + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_repeal_4 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_defenseprivatization_repeal_4_effect_success + hidden_effect = { + cancel_resolution = "resolution_defenseprivatization_security_business" + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + remove_modifier = resolution_defenseprivatization_security_business_merc_naval_cap + } + } + custom_tooltip = resolution_defenseprivatization_condottieri + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_defenseprivatization_security_business" + } + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + resolution_defenseprivatization_condottieri = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_defenseprivatization_security_business + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_repeal_5 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_defenseprivatization_repeal_5_effect_success + hidden_effect = { + cancel_resolution = "resolution_defenseprivatization_corporate_warlords" + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + remove_modifier = resolution_defenseprivatization_corporate_warlords_merc_naval_cap + } + } + custom_tooltip = resolution_defenseprivatization_security_business + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_defenseprivatization_corporate_warlords" + } + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + resolution_defenseprivatization_condottieri = 1 + resolution_defenseprivatization_security_business = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 10 + in_breach_of = resolution_defenseprivatization_corporate_warlords + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 2 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_defense_contracts = { + icon = "GFX_resolution_defence_privatization" + + potential = { + has_overlord_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + level = 1 + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + } + + effect = { + custom_tooltip = resolution_defenseprivatization_defense_contracts_tooltip + hidden_effect = { + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + add_modifier = { + modifier = resolution_defenseprivatization_defense_contracts_merc_naval_cap + } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_defenseprivatization_defense_contracts" + is_active_resolution = "resolution_defenseprivatization_private_support_troops" + is_active_resolution = "resolution_defenseprivatization_condottieri" + is_active_resolution = "resolution_defenseprivatization_security_business" + is_active_resolution = "resolution_defenseprivatization_corporate_warlords" + } + } + } + + ai_weight = { + base = @resolution_weight_loved + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.8 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_private_support_troops = { + icon = "GFX_resolution_defence_privatization" + + potential = { + has_overlord_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + target = no + level = 2 + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + } + + effect = { + custom_tooltip = resolution_defenseprivatization_private_support_troops_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + add_modifier = { + modifier = resolution_defenseprivatization_private_support_troops_merc_naval_cap + } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_defenseprivatization_defense_contracts" + } + + ai_weight = { + base = @resolution_weight_popular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + has_authority = auth_corporate + desc = auth_corporate + } + + modifier = { + factor = 0.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.5 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_condottieri = { + icon = "GFX_resolution_defence_privatization" + + potential = { + has_overlord_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + target = no + level = 3 + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + resolution_defenseprivatization_condottieri = 1 + } + + effect = { + custom_tooltip = resolution_defenseprivatization_condottieri_tooltip + hidden_effect = { + set_global_flag = resolution_with_breach_effect_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + add_modifier = { + modifier = resolution_defenseprivatization_condottieri_merc_naval_cap + } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_defenseprivatization_private_support_troops" + } + + breach = { + is_at_war = yes + NOT = { + any_controlled_fleet ={ + owner ={ + is_country_type = enclave_mercenary + } + } + } + NOT = { has_country_flag = constitutional_immunity } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + OR = { + has_civic = civic_barbaric_despoilers + has_civic = civic_warrior_culture + has_civic = civic_naval_contractors + has_civic = civic_private_military_companies + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + in_breach_of = resolution_defenseprivatization_condottieri + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_security_business = { + icon = "GFX_resolution_defence_privatization" + + potential = { + has_overlord_dlc = yes + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t4 + } + } + target = no + level = 4 + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + resolution_defenseprivatization_condottieri = 1 + resolution_defenseprivatization_security_business = 1 + } + + triggered_modifier = { + potential = { + any_controlled_fleet ={ + owner ={ + is_country_type = enclave_mercenary + } + } + } + modifier = { + resolution_defenseprivatization_security_business_merc_hired = 1 + } + } + + effect = { + custom_tooltip = resolution_defenseprivatization_security_business_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + add_modifier = { + modifier = resolution_defenseprivatization_security_business_merc_naval_cap + } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_defenseprivatization_condottieri" + } + + breach = { + is_at_war = yes + NOT = { + any_controlled_fleet ={ + owner ={ + is_country_type = enclave_mercenary + } + } + } + NOT = { has_country_flag = constitutional_immunity } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 2 + has_policy_flag = unrestricted_wars + desc = unrestricted_wars + } + + + modifier = { + factor = 2 + OR = { + has_civic = civic_barbaric_despoilers + has_civic = civic_warrior_culture + has_civic = civic_naval_contractors + has_civic = civic_private_military_companies + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + in_breach_of = resolution_rulesofwar_last_resort_doctrine + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +resolution_defenseprivatization_corporate_warlords = { + icon = "GFX_resolution_defence_privatization" + + potential = { + has_overlord_dlc = yes + has_federations_dlc = yes + } + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t5 + } + } + target = no + level = 5 + + modifier = { + resolution_defenseprivatization_defense_contracts = 1 + resolution_defenseprivatization_private_support_troops = 1 + resolution_defenseprivatization_condottieri = 1 + resolution_defenseprivatization_security_business = 1 + resolution_defenseprivatization_corporate_warlords = 1 + } + + triggered_modifier = { + potential = { + any_controlled_fleet ={ + owner ={ + is_country_type = enclave_mercenary + } + } + } + modifier = { + resolution_defenseprivatization_security_business_merc_hired = 1 + resolution_defenseprivatization_corporate_warlords_merc_hired = 1 + } + } + + effect = { + custom_tooltip = resolution_defenseprivatization_corporate_warlords_tooltip + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_passed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + every_country = { + limit = { + is_country_type = enclave_mercenary + } + add_modifier = { + modifier = resolution_defenseprivatization_corporate_warlords_merc_naval_cap + } + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_defenseprivatization days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + allow = { + is_active_resolution = "resolution_defenseprivatization_security_business" + } + + breach = { + NOT = { + any_controlled_fleet ={ + owner ={ + is_country_type = enclave_mercenary + } + } + } + NOT = { has_country_flag = constitutional_immunity } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 2 + OR = { + has_civic = civic_barbaric_despoilers + has_civic = civic_warrior_culture + has_civic = civic_naval_contractors + has_civic = civic_private_military_companies + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0 + in_breach_of = resolution_defenseprivatization_security_business + desc = gal_com_in_breach_of_proposed_resolution + } + + modifier = { + factor = 0 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + is_pacifist = yes + desc = ethic_pacifist + } + } +} + +### Intergalactic Directives +resolution_intergalacticdirective_regulated_growth = { + icon = "GFX_resolution_intergalactic_directives" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + level = 1 + + potential = { + has_overlord_dlc = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_intergalacticdirective_regulated_growth" + is_active_resolution = "resolution_intergalacticdirective_ensured_sovereignty" + is_active_resolution = "resolution_intergalacticdirective_a_voice_for_all" + } + } + } + + effect = { + galcom_success_effect = { FLAG = galactic_community_resolution_passed_intergalacticdirective } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective } + } + + modifier = { + resolution_intergalacticdirective_regulated_growth = 1 + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_intergalacticdirective_ensured_sovereignty = { + icon = "GFX_resolution_intergalactic_directives" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + + target = no + level = 2 + + potential = { + has_overlord_dlc = yes + } + + allow = { + is_active_resolution = "resolution_intergalacticdirective_regulated_growth" + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_intergalacticdirective_ensured_sovereignty" + is_active_resolution = "resolution_intergalacticdirective_a_voice_for_all" + } + } + } + + effect = { + galcom_success_effect = { FLAG = galactic_community_resolution_passed_intergalacticdirective } + custom_tooltip = galcom_tooltip_no_integration_permitted + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_integration + CURRENT_VALUE = subject_can_be_integrated + NEW_VALUE = subject_can_not_be_integrated + } + } + custom_tooltip = galcom_tooltip_no_expansion_prohibited + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_expand + CURRENT_VALUE = subject_cannot_expand + NEW_VALUE = subject_can_expand_with_tithe + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective } + } + + modifier = { + resolution_intergalacticdirective_regulated_growth = 1 + resolution_intergalacticdirective_ensured_sovereignty = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_intergalacticdirective_a_voice_for_all = { + icon = "GFX_resolution_intergalactic_directives" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = no + level = 3 + + potential = { + has_overlord_dlc = yes + } + + allow = { + is_active_resolution = "resolution_intergalacticdirective_ensured_sovereignty" + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_intergalacticdirective_a_voice_for_all" } + } + } + + effect = { + custom_tooltip = galcom_tooltip_strengthened_specialists + hidden_effect = { + every_galcom_member = { + limit = { + is_specialist_subject_type = { TYPE = bulwark } + } + add_modifier = { + modifier = resolution_galcom_bulwark_modifier + days = -1 + } + } + } + galcom_success_effect = { FLAG = galactic_community_resolution_passed_intergalacticdirective } + custom_tooltip = galcom_tooltip_no_limited_diplomacy + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_diplomacy + CURRENT_VALUE = subject_can_not_do_diplomacy + NEW_VALUE = subject_can_do_diplomacy_but_not_vote + } + } + custom_tooltip = galcom_tooltip_no_expansion_regulated + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_expand + CURRENT_VALUE = subject_can_expand_with_tithe + NEW_VALUE = subject_can_expand + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective } + } + + modifier = { + resolution_intergalacticdirective_regulated_growth = 1 + resolution_intergalacticdirective_ensured_sovereignty = 1 + resolution_intergalacticdirective_a_voice_for_all = 1 + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_intergalacticdirective_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_intergalacticdirective_regulated_growth" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_intergalacticdirective_regulated_growth + FLAG = galactic_community_resolution_passed_intergalactivedirective_repeal + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective_repeal } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_intergalacticdirective_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_intergalacticdirective_ensured_sovereignty" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_intergalacticdirective_ensured_sovereignty + FLAG = galactic_community_resolution_passed_intergalactivedirective_repeal + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective_repeal } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_intergalacticdirective_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_intergalacticdirective_a_voice_for_all" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_intergalacticdirective_a_voice_for_all + FLAG = galactic_community_resolution_passed_intergalactivedirective_repeal + } + hidden_effect = { + every_galcom_member = { + limit = { + is_specialist_subject_type = { TYPE = bulwark } + } + remove_modifier = resolution_galcom_bulwark_modifier + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_intergalacticdirective_repeal } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +### Bureaucratic Surveillance +resolution_bureaucraticsurveillance_administrative_insight = { + icon = "GFX_resolution_bureaucratic_surveillance" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + level = 1 + + potential = { + has_overlord_dlc = yes + } + + allow = { + is_overlord = yes + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_bureaucraticsurveillance_administrative_insight" + is_active_resolution = "resolution_bureaucraticsurveillance_borderless_authority" + is_active_resolution = "resolution_bureaucraticsurveillance_personal_oversight" + } + } + } + + effect = { + galcom_success_effect = { FLAG = galactic_community_resolution_passed_bureaucraticsurveillance } + custom_tooltip = galcom_tooltip_ethics_tier_1 + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_subject_ethic_modifier_effect = yes + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance } + } + + modifier = { + resolution_bureaucraticsurveillance_administrative_insight = 1 + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_bureaucraticsurveillance_borderless_authority = { + icon = "GFX_resolution_bureaucratic_surveillance" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + + target = no + level = 2 + + potential = { + has_overlord_dlc = yes + } + + allow = { + is_active_resolution = "resolution_bureaucraticsurveillance_administrative_insight" + is_overlord = yes + custom_tooltip = { + fail_text = "resolution_already_active" + NOR = { + is_active_resolution = "resolution_bureaucraticsurveillance_borderless_authority" + is_active_resolution = "resolution_bureaucraticsurveillance_personal_oversight" + } + } + } + + effect = { + custom_tooltip = galcom_tooltip_ethics_tier_2 + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_upgrade_ethic_modifier_effect = yes + } + } + galcom_success_effect = { FLAG = galactic_community_resolution_passed_bureaucraticsurveillance } + custom_tooltip = galcom_tooltip_no_independent_sensors + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_sensors + CURRENT_VALUE = subject_does_not_get_sensors + NEW_VALUE = subject_gets_sensors + } + } + custom_tooltip = galcom_tooltip_no_holdings_4 + hidden_effect = { + every_galcom_member = { + limit = { + is_overlord = yes + } + every_agreement = { + limit = { + has_term_value = { + term = subject_holdings_limit + value = subject_holdings_limit_4 + } + } + set_agreement_terms = { + subject_holdings_limit = subject_holdings_limit_3 + } + } + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance } + } + + modifier = { + resolution_bureaucraticsurveillance_administrative_insight = 1 + resolution_bureaucraticsurveillance_borderless_authority = 1 + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_bureaucraticsurveillance_personal_oversight = { + icon = "GFX_resolution_bureaucratic_surveillance" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = no + level = 3 + + potential = { + has_overlord_dlc = yes + } + + allow = { + is_active_resolution = "resolution_bureaucraticsurveillance_borderless_authority" + is_overlord = yes + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { is_active_resolution = "resolution_bureaucraticsurveillance_personal_oversight" } + } + } + + effect = { + custom_tooltip = galcom_tooltip_ethics_tier_3 + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_upgrade_ethic_modifier_effect = yes + } + } + galcom_success_effect = { FLAG = galactic_community_resolution_passed_bureaucraticsurveillance } + custom_tooltip = galcom_tooltip_no_independent_diplomacy + hidden_effect = { + galcom_change_agreement_term_resolution_effect = { + TERM = subject_diplomacy + CURRENT_VALUE = subject_can_do_diplomacy + NEW_VALUE = subject_can_do_diplomacy_but_not_vote + } + } + custom_tooltip = galcom_tooltip_no_holdings_3 + hidden_effect = { + every_galcom_member = { + limit = { + is_overlord = yes + } + every_agreement = { + limit = { + has_term_value = { + term = subject_holdings_limit + value = subject_holdings_limit_3 + } + } + set_agreement_terms = { + subject_holdings_limit = subject_holdings_limit_2 + } + } + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance } + } + + modifier = { + resolution_bureaucraticsurveillance_administrative_insight = 1 + resolution_bureaucraticsurveillance_borderless_authority = 1 + resolution_bureaucraticsurveillance_personal_oversight = 1 + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.25 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 3 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 0.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 2 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 2 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 0.5 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 0.5 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_bureaucraticsurveillance_repeal_1 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_bureaucraticsurveillance_administrative_insight" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_bureaucraticsurveillance_administrative_insight + FLAG = galactic_community_resolution_passed_bureaucraticsurveillance_repeal + } + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_downgrade_ethic_modifier_effect = yes + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance_repeal } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_bureaucraticsurveillance_repeal_2 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t2 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_bureaucraticsurveillance_borderless_authority" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_bureaucraticsurveillance_borderless_authority + FLAG = galactic_community_resolution_passed_bureaucraticsurveillance_repeal + } + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_downgrade_ethic_modifier_effect = yes + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance_repeal } + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} + +resolution_bureaucraticsurveillance_repeal_3 = { + icon = "GFX_resolution_council_veto" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t3 + } + } + + target = no + fire_and_forget = yes + + potential = { + has_overlord_dlc = yes + is_active_resolution = "resolution_bureaucraticsurveillance_personal_oversight" + } + + effect = { + galcom_success_effect_repeal = { + RESOLUTION = resolution_bureaucraticsurveillance_personal_oversight + FLAG = galactic_community_resolution_passed_bureaucraticsurveillance_repeal + } + hidden_effect = { + every_galcom_member = { + limit = { + is_subject = yes + } + galcom_downgrade_ethic_modifier_effect = yes + } + } + } + + fail_effects = { + galcom_fail_effects = { FLAG = galactic_community_resolution_failed_bureaucraticsurveillance_repeal } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 3 + is_subject = yes + desc = galcom_is_subject + } + + modifier = { + factor = 0.25 + is_overlord = yes + is_xenophile = no + is_egalitarian = no + desc = galcom_is_overlord + } + + modifier = { + factor = 2 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0.25 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + is_subject = no + desc = ethic_xenophobe + } + + modifier = { + factor = 2 + has_civic = civic_feudal_realm + desc = civic_feudal_realm + } + + modifier = { + factor = 2 + has_civic = civic_franchising + desc = civic_franchising + } + } +} diff --git a/static/resolutions/03_resolutions_first_contact_dlc.txt b/static/resolutions/03_resolutions_first_contact_dlc.txt new file mode 100644 index 0000000..d6fdc75 --- /dev/null +++ b/static/resolutions/03_resolutions_first_contact_dlc.txt @@ -0,0 +1,789 @@ +@resolution_weight_hated = 3 +@resolution_weight_disliked = 4 +@resolution_weight_unpopular = 5 +@resolution_weight_normal = 6 +@resolution_weight_popular = 6.5 +@resolution_weight_loved = 7 + +@resolution_cost_t1 = 100 +@resolution_cost_t2 = 150 +@resolution_cost_t3 = 200 +@resolution_cost_t4 = 250 +@resolution_cost_t5 = 300 +@resolution_cost_denounce = 25 + +@resolution_flag_timer = 360 + +# Pre-FTL Stances + +resolution_pre_ftl_stances_repeal_1 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_pre_ftl_stances_repeal_1_effect_success + hidden_effect = { + cancel_resolution = "resolution_pre_ftl_stances_equal_standing" + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + is_active_resolution = "resolution_pre_ftl_stances_equal_standing" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.5 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_pre_ftl_stances_repeal_2 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_pre_ftl_stances_repeal_2_effect_success + hidden_effect = { + cancel_resolution = "resolution_pre_ftl_stances_non_interference" + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + is_active_resolution = "resolution_pre_ftl_stances_non_interference" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 0.8 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_hive_empath + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_pompous_purists + has_valid_civic = civic_franchising + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.8 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 0 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 0 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + } +} + +resolution_pre_ftl_stances_repeal_3 = { + icon = "GFX_resolution_repeal_red" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + fire_and_forget = yes + + effect = { + custom_tooltip = resolution_pre_ftl_stances_repeal_3_effect_success + hidden_effect = { + cancel_resolution = "resolution_pre_ftl_stances_exploitation" + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances_repeal days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + is_active_resolution = "resolution_pre_ftl_stances_exploitation" + } + + ai_weight = { + base = @resolution_weight_unpopular + + modifier = { + factor = 1.5 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 0 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 2 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 2 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.5 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0.5 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_pre_ftl_stances_equal_standing = { + icon = "GFX_resolution_pre_ftl_stances" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + op_cat_infiltration_difficulty_add = 2 + } + + effect = { + custom_tooltip = resolution_pre_ftl_stances_equal_standing_tooltip + hidden_effect = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_met_primitives = yes + OR = { + has_policy_flag = interference_not_allowed + has_policy_flag = interference_aggressive + } + can_set_policy = { + policy = interference + option = interference_active + } + } + country_event = { id = preftl.10000 } + } + set_global_flag = resolution_with_breach_effect_passed + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { + is_active_resolution = "resolution_pre_ftl_stances_equal_standing" + } + } + custom_tooltip = { + fail_text = "exclusive_resolution_already_active" + NOR = { + is_active_resolution = "resolution_pre_ftl_stances_non_interference" + is_active_resolution = "resolution_pre_ftl_stances_exploitation" + } + } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_met_primitives = yes + OR = { + has_policy_flag = interference_not_allowed + has_policy_flag = interference_aggressive + has_country_flag = resolution_breached_pre_ftl_stances_equal_standing + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + has_ethic = ethic_egalitarian + desc = ethic_egalitarian + } + + modifier = { + factor = 0.8 + is_authoritarian = yes + desc = ethic_authoritarian + } + + modifier = { + factor = 0.5 + is_megacorp = yes + is_worker_coop_empire = no + desc = gov_megacorporation + } + + modifier = { + factor = 1.4 + has_ethic = ethic_fanatic_egalitarian + desc = ethic_fanatic_egalitarian + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_shared_burden + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_machine_exploration_protocol + is_worker_coop_empire = yes + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.8 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 0 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} + +resolution_pre_ftl_stances_non_interference = { + icon = "GFX_resolution_pre_ftl_stances" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + op_cat_infiltration_difficulty_add = 3 + } + + effect = { + custom_tooltip = resolution_pre_ftl_stances_non_interference_tooltip + hidden_effect = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_met_primitives = yes + OR = { + has_policy_flag = interference_active + has_policy_flag = interference_aggressive + } + } + country_event = { id = preftl.10100 } + } + set_global_flag = resolution_with_breach_effect_passed + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { + is_active_resolution = "resolution_pre_ftl_stances_non_interference" + } + } + custom_tooltip = { + fail_text = "exclusive_resolution_already_active" + NOR = { + is_active_resolution = "resolution_pre_ftl_stances_equal_standing" + is_active_resolution = "resolution_pre_ftl_stances_exploitation" + } + } + } + + modifier = { + custom_tooltip = "resolution_pre_ftl_stances_non_interference_modifier" + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_met_primitives = yes + OR = { + has_policy_flag = interference_active + has_policy_flag = interference_aggressive + has_country_flag = resolution_breached_pre_ftl_stances_non_interference + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 1.2 + is_pacifist = yes + desc = ethic_pacifist + } + + modifier = { + factor = 0.8 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_environmentalist + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_hive_empath + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_pompous_purists + has_valid_civic = civic_franchising + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0.6 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + + modifier = { + factor = 2 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 2 + has_valid_civic = civic_inwards_perfection + desc = civic_inwards_perfection + } + + modifier = { + factor = 0 + has_valid_civic = civic_machine_servitor + desc = civic_machine_servitor + } + } +} + +resolution_pre_ftl_stances_exploitation = { + icon = "GFX_resolution_pre_ftl_stances" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + target = no + + modifier = { + op_cat_infiltration_skill_add = 2 + } + + effect = { + custom_tooltip = resolution_pre_ftl_stances_exploitation_tooltip + + hidden_effect = { + every_playable_country = { + limit = { + is_galactic_community_member = yes + has_met_primitives = yes + has_policy_flag = interference_not_allowed + } + country_event = { id = preftl.10200 } + } + set_global_flag = resolution_with_breach_effect_passed + set_global_flag = galactic_community_resolution_passed + set_timed_country_flag = { flag = galactic_community_resolution_passed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_pre_ftl_stances days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_first_contact_dlc = yes + } + + allow = { + custom_tooltip = { + fail_text = "resolution_already_active" + NOT = { + is_active_resolution = "resolution_pre_ftl_stances_exploitation" + } + } + custom_tooltip = { + fail_text = "exclusive_resolution_already_active" + NOR = { + is_active_resolution = "resolution_pre_ftl_stances_non_interference" + is_active_resolution = "resolution_pre_ftl_stances_equal_standing" + } + } + } + + breach = { + NOT = { has_country_flag = constitutional_immunity } + has_met_primitives = yes + OR = { + has_policy_flag = interference_not_allowed + has_country_flag = resolution_breached_pre_ftl_stances_exploitation + } + } + + ai_weight = { + base = @resolution_weight_disliked + + modifier = { + factor = 0.8 + is_egalitarian = yes + desc = ethic_egalitarian + } + + modifier = { + factor = 1.2 + has_ethic = ethic_authoritarian + desc = ethic_authoritarian + } + + modifier = { + factor = 1.2 + is_materialist = yes + desc = ethic_materialist + } + + modifier = { + factor = 2 + is_megacorp = yes + desc = gov_megacorporation + } + + modifier = { + factor = 1.4 + has_ethic = ethic_fanatic_authoritarian + desc = ethic_fanatic_authoritarian + } + + modifier = { + factor = 0.8 + OR = { + has_valid_civic = civic_machine_servitor + has_valid_civic = civic_agrarian_idyll + has_valid_civic = civic_free_haven + has_valid_civic = civic_idealistic_foundation + has_valid_civic = civic_inwards_perfection + } + desc = gal_com_opposing_civics + } + + modifier = { + factor = 0 + has_valid_civic = civic_shared_burden + desc = civic_shared_burden + } + + modifier = { + factor = 0 + is_worker_coop_empire = yes + desc = civic_worker_coop + } + + modifier = { + factor = 0 + has_valid_civic = civic_machine_exploration_protocol + desc = civic_machine_exploration_protocol + } + + modifier = { + factor = 1.2 + OR = { + has_valid_civic = civic_aristocratic_elite + has_valid_civic = civic_police_state + } + desc = gal_com_supporting_civics + } + + modifier = { + factor = 1.2 + is_gestalt = yes + desc = ethic_gestalt_consciousness + } + + modifier = { + factor = 2 + OR = { + has_valid_civic = civic_slaver_guilds + has_valid_civic = civic_indentured_assets + is_slaver = yes + } + desc = gal_com_slaver_empire + } + } +} \ No newline at end of file diff --git a/static/resolutions/04_resolutions_machine_age.txt b/static/resolutions/04_resolutions_machine_age.txt new file mode 100644 index 0000000..1d01594 --- /dev/null +++ b/static/resolutions/04_resolutions_machine_age.txt @@ -0,0 +1,158 @@ +@resolution_weight_hated = 3 +@resolution_weight_disliked = 4 +@resolution_weight_unpopular = 5 +@resolution_weight_normal = 6 +@resolution_weight_popular = 6.5 +@resolution_weight_loved = 7 + +@resolution_cost_t1 = 100 +@resolution_cost_t2 = 150 +@resolution_cost_t3 = 200 +@resolution_cost_t4 = 250 +@resolution_cost_t5 = 300 +@resolution_cost_denounce = 25 + +@resolution_flag_timer = 360 + +# Synth Queen Stances + +resolution_galactic_focus_crisis_synth_queen = { + icon = "GFX_resolution_emergency_measure" + + resources = { + category = resolutions + cost = { + influence = @resolution_cost_t1 + } + } + + target = no + + effect = { + custom_tooltip = resolution_galactic_focus_crisis_synth_queen_effect_success + + hidden_effect = { + repeal_all_galactic_focus_resolutions = yes + set_global_flag = galactic_focus_crisis_synth_queen + set_global_flag = galactic_community_crisis_fighting + + set_global_flag = galactic_community_resolution_passed + + set_timed_country_flag = { flag = galactic_community_resolution_passed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_passed_diplomatic_weight + days = 2200 + } + } + } + + fail_effects = { + hidden_effect = { + set_timed_country_flag = { flag = galactic_community_resolution_failed_general days = @resolution_flag_timer } + add_modifier = { + modifier = resolution_failed_diplomatic_weight + days = 2200 + } + } + } + + potential = { + has_machine_age_dlc = yes + any_country = { + has_country_flag = synth_queen_player_can_see_doomclock + } + NOT = { has_global_flag = galactic_focus_crisis_synth_queen } + } + + active = { # Resolution only in effect while this trigger is met + any_country = { + has_country_flag = synth_queen_player_can_see_doomclock + } + } + + ai_weight = { + base = @resolution_weight_normal + + modifier = { + factor = 2 + + any_neighbor_country = { + is_country_type = synth_queen + } + desc = gal_com_neighboring_synth_queen + } + + modifier = { + factor = 0.75 + + has_global_flag = synth_queen_crisis_1 + desc = gal_com_synth_queen_threat_smallest + } + + modifier = { + factor = 1.1 + + has_global_flag = synth_queen_crisis_2 + desc = gal_com_synth_queen_threat_small + } + + modifier = { + factor = 1.5 + + has_global_flag = synth_queen_crisis_3 + desc = gal_com_synth_queen_threat_medium + } + + modifier = { + factor = 2 + + has_global_flag = synth_queen_crisis_4 + desc = gal_com_synth_queen_threat_large + } + + modifier = { + factor = 3 + + has_global_flag = synth_queen_crisis_5 + desc = gal_com_synth_queen_threat_very_large + } + + modifier = { + factor = 10 + + has_global_flag = synth_queen_crisis_6 + desc = gal_com_synth_queen_threat_huge + } + + modifier = { + factor = 10 + + has_ascension_perk = ap_defender_of_the_galaxy + desc = ap_defender_of_the_galaxy + } + + modifier = { + factor = 1.2 + is_militarist = yes + desc = ethic_militarist + } + + modifier = { + factor = 1.1 + is_xenophile = yes + desc = ethic_xenophile + } + + modifier = { + factor = 0.5 + is_xenophobe = yes + + NOT = { + any_neighbor_country = { + is_country_type = synth_queen + } + } + desc = ethic_xenophobe + } + } +} \ No newline at end of file diff --git a/tools/__init__.py b/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tools/cw_parser.py b/tools/cw_parser.py new file mode 100644 index 0000000..77c57ff --- /dev/null +++ b/tools/cw_parser.py @@ -0,0 +1,2093 @@ +# LIVE + +import re +import os +from typing import Generator, Callable, Self +from numbers import Number +from abc import ABC, abstractmethod +from collections.abc import Iterator, Iterable +from collections import UserList, UserDict +from copy import copy, deepcopy +from time import sleep + +globalSettings = { + 'parser_commands': [], + 'context_mod': None, + 'replace_local_variables': True, + 'expand_inlines': False, + 'debug_print': False, + 'debug_sleep': 0, + 'max_from_depth': 8, + 'effectLocations': {}, + 'effectNesting': {}, + 'scopeTransitions': {}, + 'eventTypes': {}, + 'hardcodedOnActions': {}, + 'effectParseAdditionalSetup': lambda mod: None, + 'additionalEffectBlocks': lambda mod: [], + 'mod_docs_path': "C:\\Users\\kuyan\\OneDrive\\Documents\\Paradox Interactive\\Stellaris\\mod", + 'workshop_path': "C:\\Program Files (x86)\\Steam\\steamapps\\workshop\\content\\281990", + 'vanilla_path': "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Stellaris", + 'mod_order': [], +} +globalData = { + 'eventTargets': {}, + 'factionParameters': {}, + 'onActionScopes': {}, + 'eventScopes': {}, +} + + +def defaultToGlobal(value, key): + if value is None: + return globalSettings[key] + else: + return value + + +def configure(key, value): + '''configures global settings + available settings: + parser_commands (None): default parser commands + context_mod (None): mod from which to read inline scripts and effects + replace_local_variables (False): whether to replace local variables by default when parsing strings + expand_inlines (False): whether to expand inline scripts by default when searching CWLists + max_from_depth (8): attempting to access "from" scopes deeper than this will cause an error + mod_docs_path: folder in which to look for your own mods + workshop_path ("C:\\Program Files (x86)\\Steam\\steamapps\\workshop\\content\\281990"): folder in which to look for downloaded mods + effectLocations ({}): dictionary used for effect scoping- see cwp_stellaris for an example + effectNesting ({}): dictionary used for effect scoping- see cwp_stellaris for an example + scopeTransitions ({}): dictionary used for effect scoping- see cwp_stellaris for an example + eventTypes ({}): dictionary used for effect scoping- see cwp_stellaris for an example + hardcodedOnActions ({}): dictionary used for effect scoping- see cwp_stellaris for an example + effectParseAdditionalSetup (lambda mod: None): used for effect scoping- see cwp_stellaris for an example + additionalEffectBlocks (lambda mod: None): used for effect scoping- see cwp_stellaris for an example + ''' + global globalSettings + globalSettings[key] = value + + +def printsleep(s, time=0): + if globalSettings['debug_print']: + print(s) + sleep(time) + + +def mod_doc_path(name): + return os.path.join(globalSettings['mod_docs_path'], name) + + +class ShallowFromsException(Exception): + pass + + +class UndefinedCollision(Exception): + pass + + +class MissingInlineScript(Exception): + pass + + +# placeholder class definitions +class Mod(): + pass + + +class CWOverwritable(): + pass + + +class CWElement(CWOverwritable): + pass + + +class CWList(UserList): + pass + + +class CWListValue(CWList): + pass + + +class ColorElement(CWListValue): + pass + + +class inlineMathsStep(): + pass + + +class inlineMathsBlock(): + pass + + +class inlineMathsUnit(): + pass + + +class absValBlock(): + pass + + +class metascript(): + pass + + +class metascriptSubstitution(): + pass + + +class metascriptConditional(): + pass + + +# class metascriptInlineMathsBlock(): +# pass +class metascriptList(UserList): + pass + + +class scopeUnpackable(ABC): + pass + + +class scopeSet(scopeUnpackable): + pass + + +class scopesContext(): + pass + + +def escapeString(s: str) -> str: + return s.replace('\\', '\\\\').replace('"', '\\"') + + +def quote(s: str) -> str: + '''puts quote marks around a string''' + return f'"{escapeString(s)}"' + + +def numerify(s: str) -> int | float | str: + '''tries to convert a string to an integer or float''' + try: + sn = s.replace(' ', '').replace('--', '') + return int(s) + except(ValueError): + try: + return float(s) + except(ValueError): + return s + + +def indent(s: str, count: int = 1, initial_linebreak=False) -> str: + '''indents a multi-line string using tabs''' + tabs = '\n' + for i in range(count): + tabs += '\t' + if initial_linebreak: + s = '\n' + s + return s.replace('\n', tabs) + + +def valueString(v) -> str: + '''converts an object back to the corresponding string for use in stellaris script + for objects from this module str() is equivalent, but this is useful if you might also receive a string''' + if isinstance(v, str): + if ' ' in v or '\n' in v or '\t' in v or v == '': + return quote(v) + else: + return (v) + else: + return str(v) + + +def generate_joined_folder(path: str, *args) -> str: + '''like os.path.join, except it it will create a folder if it doesn't already exists''' + for folder in args: + path = os.path.join(path, folder) + if not os.path.exists(path): + os.mkdir(path) + return path + + +def match(string1: str | None, string2: str | None, debug=False) -> bool: + '''checks that, of two strings, either both exist or nether exists, and both are the same except for case''' + if isinstance(string1, str) and isinstance(string2, str): + m = string1.lower() == string2.lower() + return m + else: + return string1 == string2 + + +def to_yesno(bool: bool) -> str: + '''converts a boolean to the string "yes" or "no", to match Stellaris syntax''' + if bool: + return "yes" + else: + return "no" + + +def in_common(*args: list[str]) -> str: + '''shorthand for os.path.join('common',*args)''' + return os.path.join('common', *args) + + +government_triggers = { + 'country_type': 'is_country_type', + 'species_class': 'is_species_class', + 'species_archetype': 'is_species_class', + 'origin': 'has_origin', + 'ethics': 'has_ethic', + 'authority': 'has_authority', + 'civics': 'has_civic', +} + + +class parserCommandObject(): + def __init__(self, code, key, *args) -> None: + self.code = code + self.key = key + self.parameters = args + + def isspace(self): + return False + + def startswith(self, str: str): + return False + + def restoreString(self, str: str): + text_params = [self.key] + self.parameters + return f"#{self.code}:({':'.join(text_params)})" + + +class tokenizer(): + def __init__( + self, + string: str, + parser_commands: str | list[str] | None = None, + debug=False, + ) -> None: + self.debug = debug + # replace parser command tokens with something that doesn't start with "#" so they don't get removed with comments + if isinstance(parser_commands, str): + parser_command_template = r"#{}:([^ \n]*)".format(parser_commands) + string = re.sub(parser_command_template, r"@PARSER:{}:\1".format(parser_commands), string) + elif isinstance(parser_commands, list): + for key in parser_commands: + parser_command_template = r"#{}:([^ \n]*)".format(key) + string = re.sub(parser_command_template, r"@PARSER:{}:\1".format(key), string) + # # remove comments + # # if not include_formatting: + # string = string+"\n" + # string = re.sub(r"#.*\n",r" ",string) + # prepare string for splitting + # normal script and metascript special characters + string = string.replace('', '') # since vanilla inconsistently uses BOM or non-BOM encoding + string = re.sub(r'(\s+)', r'‗\1‗', string) + string = string.replace('#', '‗#') + string = string.replace('\n', '‗\n') + string = string.replace('=', '‗=‗') + string = string.replace('<', '‗<‗') + string = string.replace('>', '‗>‗') + string = string.replace('{', '‗{‗') + string = string.replace('}', '‗}‗') + string = string.replace('[', '‗[‗') + string = string.replace(']', '‗]‗') + string = re.sub(r'@(\\*)‗\[', r'‗@[', string) + string = string.replace('$', '‗$‗') + string = string.replace('|', '‗|‗') + # inline maths special characters + string = string.replace('"', '‗"‗') + # escaping + string = string.replace('\\\\', '‗\\\\‗') + string = string.replace('\\‗"', '‗\\"') + string = string.replace('+', '‗+‗') + string = string.replace('-', '‗-‗') + string = string.replace('/', '‗/‗') + string = string.replace('@PARSER:‗/‗', '@PARSER:/') + string = string.replace('*', '‗*‗') + string = string.replace('%', '‗%‗') + string = string.replace('(', '‗(‗') + string = string.replace(')', '‗)‗') + string = re.sub(r'‗+', r'‗', string) + # split by the metatoken delimeter + tokenList = string.split('‗') + # apply parser skip command + i = 0 + while i < len(tokenList): + token = tokenList[i] + if token == '': + tokenList.pop(i) + elif token == '@PARSER:skip': + while token != '@PARSER:/skip' and i < len(tokenList): + token = tokenList.pop(i) + else: + if token.startswith('@PARSER'): + parameters = token.split(':') + parameters.pop(0) + tokenList[i] = parserCommandObject(*parameters) + i += 1 + tokenList.append('\n') + self.metatokens = tokenList + self.position = -1 + # self.nextAny = self.nextAny() + # self.nextActive = self.nextActive() + self.cwtokens = self.mode( + special_tokens=['=', '{', '}', '"', '<', '>', '@['], + split_on_whitespace=True, + debug_name='cwtokens', + ) + self.IMOperators = self.mode( + end_token=['+', '-', '*', '/', '%', ']', ')', '|'], + start_token=['(', '[', '|'], + split_on_whitespace=True, + ) + self.IMValues = self.mode( + end_token=['(', '[', '|', '-'], + start_token=['+', '-', '*', '/', '%', ']', ')', '|'], + split_on_whitespace=True, + ) + self.metascriptTokens = self.mode( + special_tokens=['{', '}', '"', '[', '@[', '$', 'optimize_memory'], + split_on_whitespace=False, + ) + self.metascriptConditionalTokens = self.mode( + special_tokens=[']', '"', '[', '@[', '$'], + split_on_whitespace=False, + ) + self.metascriptSubstitutionTokens = self.mode( + special_tokens=['|', '$'], + split_on_whitespace=False, + ) + + def current_mt(self) -> str | parserCommandObject: + if self.position >= len(self.metatokens): + return None + else: + return self.metatokens[self.position] + + def next_mt(self) -> str | parserCommandObject | None: + if self.position + 1 >= len(self.metatokens): + return None + else: + return self.metatokens[self.position + 1] + + def step(self, skip_comments: bool = False, skip_whitespace: bool = False): + while self.position <= len(self.metatokens): + self.position += 1 + if not isinstance(self.current_mt(), str): + break + if skip_comments and self.current_mt().startswith('#'): + while not self.current_mt().startswith('\n'): + self.position += 1 + if (not skip_whitespace) or (not self.current_mt().isspace()): + break + + def mode( + self, + special_tokens: list[str] | None = None, + end_token: list[str] | None = None, + start_token: list[str] | None = None, + skip_comments: bool = True, + split_on_whitespace: bool = True, + debug_name='', + ) -> Generator[tuple[str | parserCommandObject | None, bool], None, None]: + + if end_token is None: + end_token = special_tokens + + if start_token is None: + start_token = special_tokens + + token = '' + + while True: + self.step(skip_comments=skip_comments, skip_whitespace=split_on_whitespace) + if self.position >= len(self.metatokens): + break + elif not isinstance(self.current_mt(), str): + yield self.current_mt() + else: + token += self.current_mt() + if ( + ( + split_on_whitespace + and + ( + self.next_mt().isspace() + or + self.next_mt().startswith('#') + ) + ) + or (token in end_token) + or (self.next_mt() in start_token) + or (not isinstance(self.next_mt(), str)) + ): + yield token + token = '' + + def string_before(self, char: str) -> str: + token = '' + while True: + self.step() + if self.current_mt() == char: + return (token) + token += self.current_mt() + + def getQuotedString(self) -> str: + token = '' + while True: + self.step() + if self.current_mt() == '"': + return (token) + elif self.current_mt() == '\\"': + token += '"' + elif self.current_mt() == '\\\\': + token += '\\' + else: + token += self.current_mt() + + +class CWOverwritable(): + def __init__( + self, + filename: str | None = None, + overwrite_type: str | None = None, + mod: Mod | None = None, + ) -> None: + self.filename = filename + self.overwrite_type = overwrite_type + self.mod = mod + + def overwrites(self, other: CWOverwritable, default: bool): + if self.overwrite_type == 'LIOS': + if self.filename < other.filename: + return True + elif self.filename > other.filename: + return False + else: + return default + if self.overwrite_type == 'FIOS': + if self.filename > other.filename: + return True + elif self.filename < other.filename: + return False + else: + return default + + +class inlineMathsStep(): + def __init__(self, operator: str | None = None, value=None, negative=False): + self.operator = operator + self.value = value + self.negative = False + + def __str__(self) -> str: + operator = self.operator if (self.operator is not None) else '' + sign = '-' if self.negative else '' + return f"{self.operator} {sign}{str(self.value)}" + + def __repr__(self) -> str: + operator = self.operator if (self.operator is not None) else '=' + sign = '-' if self.negative else '' + return f"{operator}{sign}({str(self.value)})" + + def apply(self, prev): + if self.negative: + self.value = (-1 * self.value) + self.negative = False + if self.operator is None: + return self.value + elif self.operator == '+': + return prev + self.value + elif self.operator == '-': + return prev - self.value + elif self.operator == '*': + return prev * self.value + elif self.operator == '/': + try: + return prev / self.value + except ZeroDivisionError: + # Stellaris Evolved relies on this + return 2147483647 + elif self.operator == '%': + return prev % self.value + + +class inlineMathsBlock(UserList): + endchar = ')' + + def __str__(self) -> str: + contentstrings = map(str, self) + return f"( {' '.join(contentstrings)} )" + + def __repr__(self) -> str: + return f'({str(self.data)})' + + def parse(self, tokens: tokenizer, replace_local_variables: bool = False, local_variables: dict[str, str] = True, + debug=False) -> Self: + tree_params = { + 'replace_local_variables': replace_local_variables, + 'local_variables': local_variables, + } + self.append(inlineMathsStep()) + for val in tokens.IMValues: + if val == '-': + self[-1].negative = (not self[-1].negative) + else: + if val == '(': + value = inlineMathsBlock().parse(tokens, **tree_params) + elif val == '|': + value = absValBlock().parse(tokens, **tree_params) + else: + if replace_local_variables and (val in local_variables): + val = local_variables[val] + value = numerify(val) + self[-1].value = value + nextOperator = next(tokens.IMOperators) + if nextOperator == self.endchar: + return self + else: + self.append(inlineMathsStep(nextOperator)) + + def simplify(self, vars: Mod | None = None): + for step in self: + if isinstance(step.value, inlineMathsBlock): + step.value = step.value.simplify(vars=vars) + if isinstance(step.value, str) and isinstance(vars, Mod): + gv_value = vars.global_variables(step.value) + if gv_value is not None: + step.value = numerify(gv_value) + while len(self) > 1: + if not ( + isinstance(self[0].value, Number) + and isinstance(self[1].value, Number) + ): + return self + else: + self[0].value = self.pop(1).apply(self[0].value) + if isinstance(self[0].value, Number): + return self[0].value + elif isinstance(self[0].value, str): + return self[0].value + elif type(self[0]) == inlineMathsBlock: + return type(self)(self[0]) + else: + return self + + def simplification(self, vars: Mod | None = None): + c = deepcopy(self) + return c.simplify(vars=vars) + + +class inlineMathsUnit(inlineMathsBlock): + startchar = '@[' + endchar = ']' + + def __str__(self) -> str: + contentstrings = map(str, self) + return f"@[ {' '.join(contentstrings)} ]" + + def __repr__(self) -> str: + return f'@[{str(self.data)}]' + + def simplify(self, vars: Mod | None = None): + value = super().simplify(vars=vars) + if isinstance(value, Number): + if isinstance(value, float) and value.is_integer(): + value = int(value) + return str(value) + elif isinstance(value, str): + return '@' + value + else: + return value + + +class absValBlock(inlineMathsBlock): + startchar = '|' + endchar = '|' + + def __str__(self) -> str: + contentstrings = map(str, self) + return f"| {' '.join(contentstrings)} |" + + def __repr__(self) -> str: + return f'|{str(self.data)}|' + + def simplify(self, vars: Mod | None = None): + value = super().simplify(vars=vars) + if isinstance(value, Number): + return abs(value) + elif isinstance(value, str): + return self + else: + return value + + +def resolveValue(value, vars: Mod | None = None): + ''' attempts to solve inlineMathsBlocks and look up global variables to give a final value. + e.g. resolveValue("@discovery_weight") returns "3"''' + vars = defaultToGlobal(vars, 'context_mod') + if vars is not None: + if isinstance(value, inlineMathsBlock): + value = value.simplification(vars=vars) + if isinstance(value, str) and value.startswith('@'): + key = value[1:] + gv_value = vars.global_variables(key) + if gv_value is not None: + value = gv_value + return value + + +class CWList(UserList): + '''Class for representing blocks of CW script such as the contents of a folder or the contents of a pair of brackets. Should generally be created using a function such as stringToCW.''' + + def __init__(self, *args, local_variables={}, bracketClass: type | None = None): + if bracketClass is None: + bracketClass = CWListValue + super().__init__(*args) + self.parent_element = None + for element in self: + element.parent_list = self + self.local_variables = local_variables + self.bracketClass = bracketClass + + def __iter__(self) -> Iterator[CWElement]: + return super().__iter__() + + def __repr__(self): + return f'{repr(self.parent_element)}[{len(self)}]' + + def append(self, item: CWElement) -> None: + item.parent_list = self + return super().append(item) + + def insert(self, i: int, item: CWElement) -> None: + item.parent_list = self + return super().insert(i, item) + + def __add__(self, other: Iterable) -> Self: + new_list = super().__add__(other) + for element in new_list: + element.parent_list = new_list + if isinstance(other, CWList): + new_list.local_variables = self.local_variables | other.local_variables + else: + new_list.local_variables = self.local_variables + return new_list + + def __iadd__(self, other: Iterable) -> Self: + for element in other: + element.parent_list = self + if isinstance(other, CWList): + self.local_variables.update(other.local_variables) + return super().__iadd__(other) + + def __setitem__(self, key, value): + # if isinstance(key,str): + # self.getElement(key).setValue(value) + # else: + value.parent_list = self + super().__setitem__(key, value) + + # def __getitem__(self,key,*args): + # if isinstance(key,str): + # return self.getElement(key,*args) + # else: + # return super().__getitem__(key,*args) + + def parse( + self, + tokens: tokenizer, + replace_local_variables: bool = False, + local_variables: dict[str, str] = {}, + element_params: dict[str, str] = {}, + debug=False, + ) -> Self: + block_metadata = {} + unit_metadata = {} + for token in tokens.cwtokens: + if isinstance(token, parserCommandObject): + if token.key == 'add_block_metadata': + if len(token.parameters) == 1: + block_metadata[token.parameters[0]] = True + else: + block_metadata[token.parameters[0]] = token.parameters[1] + elif token.key == 'add_metadata': + if len(token.parameters) == 1: + unit_metadata[token.parameters[0]] = True + else: + unit_metadata[token.parameters[0]] = token.parameters[1] + elif token.key == '/add_block_metadata': + block_metadata.pop(token.parameters[0]) + else: + # printsleep(f'-> {token}') + if token in ('=', '<', '>'): + lastElement.comparitor = [token] + elif token == '}': + break + else: + val = CWValue( + token, + tokens, + value_parse_params={ + 'replace_local_variables': replace_local_variables, + 'local_variables': local_variables.copy(), + 'debug': debug + }, + element_params=element_params, + bracketClass=self.bracketClass + ) + # printsleep(f'-> {val}') + if (len(self) == 0) or (lastElement.value is not None) or ( + isinstance(val, str) and (len(lastElement.comparitor) == 0)): + lastElement = CWElement( + local_variables=local_variables.copy(), + **element_params + ) + lastElement.metadata = unit_metadata + unit_metadata = {} + for key in block_metadata: + lastElement.metadata.setdefault(key, block_metadata[key]) + self.append(lastElement) + if isinstance(val, str): + lastElement.name = val + continue + lastElement.setValue(val) + if (lastElement.name is not None) and lastElement.name.startswith('@'): + lv_key = lastElement.name[1:] + local_variables[lv_key] = val + if replace_local_variables: + self.pop() + # printsleep(len(self)) + # printsleep(f'>> {lastElement}',0.5) + for element in self: + if element.value is None: + element.setValue(element.name) + element.name = None + if replace_local_variables: + if isinstance(element.value, str) and element.value.startswith('@'): + lv_key = element.value[1:] + if lv_key in local_variables: + element.setValue(local_variables[lv_key]) + self.local_variables = local_variables + return self + + def __str__(self): + contentstrings = map(str, self) + if len(self) > 1 or (len(self) == 1 and not isinstance(self[0].value, str)): + return '\n'.join(contentstrings) + else: + return ' '.join(contentstrings) + + # def __getattr__(self,attribute): + # return self.getElement(attribute) + + def __deepcopy__(self, memo=None): + return type(self)(deepcopy(self.data, memo), local_variables=deepcopy(self.local_variables, memo), + bracketClass=self.bracketClass) + + def contents(self, expand_inlines: bool | None = None, inlines_mod: Mod | None = None, + expansion_exceptions: Callable[[CWElement], bool] = lambda _: False) -> Generator[ + CWElement, None, None]: + '''yields the elements of this CWList. + parameters: + expand_inlines (optional): whether to expand inline scripts. If not specified, defaults to cw_parser.globalSettings['expand_inlines'] + inlines_mod (optional): mod to source inline expansions from. If not specified, defaults to cw_parser.globalSettings['context_mod'] + expansion_exceptions (optional): callable taking a CWElement. Inline scripts for which this will be returned rather than expanded.''' + expand_inlines = defaultToGlobal(expand_inlines, 'expand_inlines') + inlines_mod = defaultToGlobal(inlines_mod, 'context_mod') + for element in self: + if expand_inlines and (element.name == 'inline_script') and ( + inlines_mod is not None) and not expansion_exceptions(element): + yield from element.inlineScriptExpansion(mod=inlines_mod, expansion_exceptions=expansion_exceptions, + bracketClass=self.bracketClass) + else: + yield element + + def getElements(self, key: str | None, **kwargs) -> Generator[CWElement, None, None]: + '''yields each subelement of this block with the specified key''' + for element in self.contents(**kwargs): + if match(element.name, key): + yield element + + def hasAttribute(self, key: str | None, **kwargs) -> bool: + '''checks if a block contains a subelement with the given key''' + for element in self.getElements(key, **kwargs): + return True + return False + + def getElement(self, key: str | None, **kwargs) -> CWElement: + '''returns the first subelement of this block with the specified key''' + for element in self.getElements(key, **kwargs): + return element + return CWElement("", parent_list=self) + + def getValue(self, key: str | None, default: str = "no", resolve: bool = False, **kwargs): + '''returns the right-hand value of the first subelement of this block with the specified key''' + for element in self.getElements(key, **kwargs): + if resolve: + return resolveValue(element.value) + else: + return element.value + return default + + def getValueBoolean(self, key: str | None, default: str = "no", **kwargs): + '''returns the right-hand value of the first subelement of this block with the specified key, as a boolean''' + return self.getValue(key, default=default, **kwargs) != 'no' + + def getValueBase(self, key: str | None, default: str = "no", **kwargs): + value = self.getValue(key, default, **kwargs) + while isinstance(value, CWList): + value = value.getValueBase('base', default='0', **kwargs) + return value + + def hasKeyValue(self, key: str | None, value: str, **kwargs): + '''checks if the object has a subelement with the given key-value pair''' + for element in self.getElements(key, **kwargs): + if match(element.value, value): + return True + return False + + def getValues(self, key: str | None, resolve: bool = False, **kwargs): + '''yields the right-hand value of each subelement of this block with the specified key''' + for element in self.getElements(key, **kwargs): + if resolve: + yield resolveValue(element.value) + else: + yield element.value + + def getArrayContents(self, key: str | None, **kwargs): + '''yields each string within the specified array subelement''' + for element in self.getElements(key, **kwargs): + yield from element.getValues(None, **kwargs) + + def getArrayContentsFirst(self, key: str, default: str = "no", **kwargs): + '''returns the first string within the specified array subelement''' + for element in self.getElements(key, **kwargs): + for entry in element.value: + return entry.value + return default + + def getArrayContentsElements(self, key: str | None, **kwargs) -> Generator[CWElement, None, None]: + '''yeilds each element within the specified array subelement''' + for element in self.getElements(key, **kwargs): + yield from element.getElements(None, **kwargs) + + def navigateByDict(self, directions: dict) -> Generator[tuple[CWElement, object], None, None]: + for element in self.contents(): + yield from element.navigateByDict(directions) + + def effectScopingRun(self, scopes: scopesContext, criteria: Callable[[CWElement], bool]) -> Generator[ + tuple[CWElement, scopesContext], None, None]: + scripted_effects = globalSettings['context_mod'].scripted_effects() + effectNesting = globalSettings['effectNesting'] + eventTypes = globalSettings['eventTypes'] + for effect in self.contents(expand_inlines=True): + effect.scopes = scopes + if criteria(effect): + yield (effect, scopes) + if effect.name is None: + print(effect.filename) + effectName = effect.name.lower() + if (effectName == 'save_event_target_as') or (effectName == 'save_global_event_target_as'): + eventTarget(effect.resolve()).add(scopes.this) + elif effectName in scripted_effects: + yield from effect.metaScriptExpansion(scripted_effects).effectScopingRun(scopes, criteria) + elif effect.hasSubelements(): + if effectName == 'fire_on_action': + event_scopes = scopes.firedContext() + scope_overwrites = effect.getElement('scopes') + for i in range(4): + key = 'from' * (i + 1) + if scope_overwrites.hasAttribute(key): + event_scopes.froms[i] = scopes.link(scope_overwrites.getValue(key, resolve=True)) + onActionScopes(effect.getValue('on_action', resolve=True)).add(event_scopes) + elif effectName in eventTypes: + event_scopes = scopes.firedContext() + scope_overwrites = effect.getElement('scopes') + for i in range(4): + key = 'from' * (i + 1) + if scope_overwrites.hasAttribute(key): + event_scopes.froms[i] = scopes.link(scope_overwrites.getValue(key, resolve=True)) + globalData['eventScopes'].setdefault(effect.getValue('id', resolve=True), scopesContext()).add( + event_scopes) + # elif match( effect.name, 'set_next_astral_rift_event' ) + else: + chain = decomposeChain(effectName) + if isScopeChain(chain) and effect.hasSubelements(): + yield from effect.value.effectScopingRun(scopes.link(chain), criteria) + # else: + # if effectName in ['create_country','create_rebels']: + # event_scopes = scopes.step('country').firedContext() + # onActionScopes('on_country_created').add(event_scopes) + for (effectBlock, scope) in effect.navigateByDict(effectNesting): + if effectBlock.hasSubelements(): + if scope is None: + yield from effectBlock.value.effectScopingRun(scopes, criteria) + else: + yield from effectBlock.value.effectScopingRun(scopes.step(scope), criteria) + + +class CWListValue(CWList): + def __str__(self): + contentstrings = map(str, self) + if len(self) > 1 or (len(self) == 1 and not isinstance(self[0].value, str)): + return "{{{}\n}}".format(indent('\n'.join(contentstrings), initial_linebreak=True)) + else: + return f"{{ {' '.join(contentstrings)} }}" + + +class CWElement(CWOverwritable): + def __init__( + self, + name: str | None = None, + comparitor: list[str] = [], + value=None, + parent_list: CWList | None = None, + filename: str | None = None, + overwrite_type: str | None = None, + mod: Mod | None = None, + local_variables: dict[str, str] = {}, + scopes: scopesContext | None = None, + ) -> None: + super().__init__(filename, overwrite_type, mod) + self.name = name + self.comparitor = comparitor + self.setValue(value) + self.parent_list = parent_list + self.local_variables = local_variables + self.metadata = {} + self.scriptExpansions = {} + self.scopes = scopes + + # def __getitem__(self,*args): + # return self.value[*args] + + def __deepcopy__(self, memo): + dc = CWElement( + self.name, + deepcopy(self.comparitor, memo), + deepcopy(self.value, memo), + filename=self.filename, + overwrite_type=self.overwrite_type, + mod=self.mod, + local_variables=deepcopy(self.local_variables, memo), + ) + dc.metadata = deepcopy(self.metadata, memo) + return dc + + def parent(self) -> CWElement: + return self.parent_list.parent_element + + def setValue(self, value): + if isinstance(value, int) or isinstance(value, float): + value = str(value) + self.value = value + if isinstance(value, CWList) or isinstance(value, metaScript): + value.parent_element = self + + def parse(self, tokens: tokenizer, replace_local_variables: bool = False, debug=False, + bracketClass: type = CWListValue): + for token in tokens.cwtokens: + if token in ('=', '<', '>'): + self.comparitor.append(token) + else: + self.setValue( + CWValue( + token, + tokens, + value_parse_params={ + 'replace_local_variables': replace_local_variables, + 'local_variables': self.local_variables.copy(), + 'debug': debug, + }, + element_params={ + 'filename': self.filename, + 'mod': self.mod, + 'overwrite_type': self.overwrite_type, + }, + bracketClass=(CWListValue if match(self.name, 'inline_script') else bracketClass), + ) + ) + break + + def __str__(self): + if self.name is None: + return valueString(self.value) + else: + return f"{self.name} {''.join(self.comparitor)} {valueString(self.value)}" + + def reprStem(self): + if self.parent() is None: + return self.name + else: + return f"{self.parent().reprStem()}>{self.name}" + + def __repr__(self) -> str: + if self.hasSubelements(): + return f"{self.reprStem()}={{}}" + else: + return f"{self.reprStem()}={repr(self.value)}" + + def contents(self, expand_inlines: bool | None = None, inlines_mod: Mod | None = None, + expansion_exceptions: Callable[[CWElement], bool] = lambda e: False) -> Generator[ + CWElement, None, None]: + if self.hasSubelements(): + yield from self.value.contents(expand_inlines=expand_inlines, inlines_mod=inlines_mod, + expansion_exceptions=expansion_exceptions) + + def resolve(self, vars: Mod | None = None): + return resolveValue(self.value, vars) + + def hasSubelements(self): + '''returns True for elements of the form = {}, false otherwise.''' + return isinstance(self.value, CWList) + + def getElements(self, key: str | None, **kwargs) -> Generator[CWElement, None, None]: + '''yields each subelement of this block with the specified key''' + if self.hasSubelements(): + yield from self.value.getElements(key, **kwargs) + + def hasAttribute(self, key: str | None, **kwargs) -> bool: + '''checks if a block contains a subelement with the given key''' + if not self.hasSubelements(): + return False + return self.value.hasAttribute(key, **kwargs) + + def getElement(self, key: str | None, **kwargs) -> CWElement: + '''returns the first subelement of this block with the specified key''' + if self.hasSubelements(): + return self.value.getElement(key, **kwargs) + else: + return CWElement("") + + def getValue(self, key: str | None, resolve=False, default: str = "no", **kwargs): + '''returns the right-hand value of the first subelement of this block with the specified key''' + if self.hasSubelements(): + return self.value.getValue(key, default, resolve=resolve, **kwargs) + else: + return default + + def getValueBoolean(self, key: str | None, default: str = "no", **kwargs): + '''returns the right-hand value of the first subelement of this block with the specified key, as a boolean''' + return self.getValue(key, default=default, resolve=True, **kwargs) != 'no' + + def getValueBase(self, key: str | None, default: str = "no", **kwargs): + '''returns the right-hand value of the first subelement of this block with the specified key''' + if self.hasSubelements(): + return self.value.getValueBase(key, default, **kwargs) + else: + return default + + def hasKeyValue(self, key: str | None, value: str, **kwargs): + '''checks if the object has a subelement with the given key-value pair''' + return self.value.hasKeyValue(key, value, **kwargs) + + def getValues(self, key: str | None, **kwargs): + '''yields the right-hand value of each subelement of this block with the specified key''' + if self.hasSubelements(): + yield from self.value.getValues(key, **kwargs) + + def getArrayContents(self, key: str | None, **kwargs): + '''yields each string within the specified array subelement''' + if self.hasSubelements(): + yield from self.value.getArrayContents(key, **kwargs) + + def getArrayContentsFirst(self, key: str, default: str = "no", **kwargs): + '''returns the first string within the specified array subelement''' + return self.value.getArrayContentsFirst(key, default, **kwargs) + + def getArrayContentsElements(self, key: str | None, **kwargs) -> Generator[CWElement, None, None]: + '''yeilds each element within the specified array subelement''' + if self.hasSubelements(): + yield from self.value.getArrayContentsElements(key, **kwargs) + + def getRoot(self) -> CWElement: + '''returns the top-level object containing this one''' + if self.parent() is None: + return self + else: + return self.parent().getRoot() + + def navigateByDict(self, directions: dict) -> Generator[tuple[CWElement, object], None, None]: + for key in [self.name.lower(), '*']: + if key in directions: + d = directions[key] + if isinstance(d, dict): + if self.hasSubelements(): + yield from self.value.navigateByDict(d) + else: + yield (self, d) + + def convertGovernmentTrigger(self, trigger: str = None, **kwargs) -> CWElement: + '''returns a copy of a government requirements block converted to normal trigger syntax''' + # text = handled separately, at the next level up + if match(self.name, 'text'): + return "" + # convert "value = " to "has_ethic = ", "has_authority = whatever" etc. + elif match(self.name, 'value'): + output = CWElement(trigger, ['='], self.value) + # "always" and "host_has_dlc" checks remain unchanged + elif match(self.name, 'always'): + output = CWElement('always', ['='], self.value) + elif match(self.name, 'host_has_dlc'): + output = CWElement('host_has_dlc', ['='], self.value) + # convert "ethic" blocks, "authority" blocks etc. into AND blocks if necessary + elif self.name.lower() in government_triggers: + output = CWElement('AND', ['='], CWListValue()) + for element in self.contents(**kwargs): + if not match(element.name, 'text'): + output.value.append(element.convertGovernmentTrigger(government_triggers[self.name], **kwargs)) + # no AND block needed for a single trigger + if len(output.value) == 1: + output = output.value[0] + # AND, OR etc. blocks remain unchanged + else: + output = CWElement(self.name, ['='], CWListValue()) + for element in self.contents(**kwargs): + if not match(element.name, 'text'): + output.value.append(element.convertGovernmentTrigger(trigger, **kwargs)) + # convert "text = " to custom_tooltip + if self.hasAttribute('text'): + text_element = CWElement('text', ['='], self.getValue('text')) + if output.name == 'AND': + return CWElement( + 'custom_tooltip', + ['='], + CWListValue([text_element] + output.value) + ) + else: + return CWElement( + 'custom_tooltip', + ['='], + CWListValue([text_element, output]) + ) + else: + return output + + def getArrayTriggers(self, block: str, trigger: str, mode=None, default='no', **kwargs) -> str: + '''generates a trigger or effect block (in string form) from the contents of an array, e.g. you can use this to convert a prerequisite block to something of the form + "AND = { has_technology = has_technology = }" + block: the name of the array, e.g. "prerequisities" + trigger: the name of the trigger to use in the output, e.g. "has_technology" + mode: whether the triggers should be combined as "AND", "OR", "NAND", or "NOR". Default is appropriate for effect blocks. + default: value to return if the array is nonexistant or empty + ''' + lines = [] + for item in self.getArrayContents(block, **kwargs): + lines.append('{} = {}'.format(trigger, item)) + if mode == 'OR': + if len(lines) == 0: + return default + elif len(lines) == 1: + return lines[0] + else: + lines_block = ' '.join(lines) + return 'OR = {{ {} }}'.format(lines_block) + elif mode == 'NOR': + if len(lines) == 0: + return default + elif len(lines) == 1: + return 'NOT = {{ {} }}'.format(lines[0]) + else: + lines_block = ' '.join(lines) + return 'NOR = {{ {} }}'.format(lines_block) + elif mode == 'AND': + if len(lines) == 0: + return default + elif len(lines) == 1: + return lines[0] + else: + lines_block = ' '.join(lines) + return 'AND = {{ {} }}'.format(lines_block) + elif mode == 'NAND': + if len(lines) == 0: + return default + elif len(lines) == 1: + return 'NOT = {{ {} }}'.format(lines[0]) + else: + lines_block = ' '.join(lines) + return 'NAND = {{ {} }}'.format(lines_block) + else: + if len(lines) == 0: + return default + elif len(lines) == 1: + return lines[0] + else: + lines_block = ' '.join(lines) + return lines_block + + def parent_hierarchy(self): + next_obj = self + while next_obj is not None: + yield next_obj + next_obj = next_obj.parent() + + def inlineScriptExpansion(self, mod: Mod | None = None, parser_commands: str | list[str] | None = None, + bracketClass: type = CWListValue, + expansion_exceptions: Callable[[CWElement], bool] = lambda _: False) -> Generator[ + CWElement, None, None]: + mod = defaultToGlobal(mod, 'context_mod') + parser_commands = defaultToGlobal(parser_commands, 'parser_commands') + conditionals = { + 'generic_parts/giga_toggled_code': ('toggle', 'code'), + 'conditional/parts/tec_step': ('x', 'code'), + } + parse_parameters = { + 'parser_commands': parser_commands, + 'filename': self.filename, + 'overwrite_type': self.overwrite_type, + 'mod': self.mod, + 'bracketClass': bracketClass + } + + if not (mod.mod_path in self.scriptExpansions): + # if there are parameters, replace them before parsing + if self.hasSubelements(): + script_path = self.getValue('script') + # because quote escaping in inline scripts is too mysterious for me to simulate properly + if script_path in conditionals: + (toggle, contents) = conditionals[script_path] + if self.getElement(toggle).resolve(mod) == '1': + inline_contents = stringToCW(self.getValue(contents), **parse_parameters) + else: + inline_contents = CWList(bracketClass=bracketClass) + elif script_path == 'mod_support/tec_inlines_include': + # I give up + inline_contents = CWList(bracketClass=bracketClass) + elif script_path == 'iterators/tec_iterate_number': + code = self.getValue('code') + script = ' '.join( + [ + code.replace('$current$', str(i)) + for i + in range( + numerify(self.getValue('start', resolve=True)), + numerify(self.getValue('end', resolve=True)), + numerify(self.getValue('increment', resolve=True)), + ) + ] + ) + inline_contents = stringToCW(script, **parse_parameters) + else: + script = mod.lookupInline(script_path) + if script is None: + raise MissingInlineScript(script_path) + else: + file = open(script, "r") + script = file.read() + file.close() + for param in self.value: + script = script.replace(f'${param.name}$', str(param.resolve(mod))) + inline_contents = stringToCW(script, **parse_parameters) + # if there are no parameters, read the file immediately + else: + script = mod.lookupInline(self.value) + if script is None: + raise MissingInlineScript + else: + inline_contents = fileToCW(script, **parse_parameters) + for subelement in inline_contents: + subelement.parent_list = self.parent_list + self.scriptExpansions[mod.mod_path] = inline_contents + yield from self.scriptExpansions[mod.mod_path].contents(expand_inlines=True, inlines_mod=mod, + expansion_exceptions=expansion_exceptions) + + def metaScriptExpansion(self, metascript_dict, parser_commands=None) -> Generator[CWElement, None, None]: + parser_commands = defaultToGlobal(parser_commands, 'parser_commands') + if self.name in metascript_dict: + ms = metascript_dict[self.name].value + if self.hasSubelements(): + parameters = {p.name: p.resolve() for p in self.contents(expand_inlines=True)} + return ms.inst(parameters) + else: + return ms.inst() + + def effectScopingRun(self, scopes: scopesContext, criteria: Callable[[CWElement], bool]) -> Generator[ + tuple[CWElement, scopesContext], None, None]: + if self.hasSubelements(): + yield from self.value.effectScopingRun(scopes, criteria) + + +class ColorElement(CWListValue): + def __init__(self, format: str, *args): + super().__init__(*args) + self.format = format + + def __str__(self): + return f"{self.format} {super().__str__()}" + + +def CWValue( + token: str, + tokens: tokenizer, + value_parse_params: dict = {}, + element_params: dict = {}, + bracketClass: type = CWListValue, +): + if token == '"': + return tokens.getQuotedString() + elif token == '{': + obj = bracketClass() + obj.parse(tokens, element_params=element_params, **value_parse_params) + return obj + elif token == '@[': + obj = inlineMathsUnit() + obj.parse(tokens, **value_parse_params) + return obj + elif token in ('hsv', 'rgb'): + obj = ColorElement(format=token) + next(tokens.cwtokens) + obj.parse(tokens, element_params=element_params, **value_parse_params) + return obj + else: + return token + + +registered_mods = {} + +vanilla_mod_object = None + + +class Mod(): + '''class for representing mods. + parameters: + workshop_item (optional): The number for this mod in Steam Workshop. + mod_path (optional): The path for this mod. If not specified it will be derived from workshop_item. + parents (optional): List of other mods to assume are also loaded if this one is. Default []. + is_base (optional): Boolean. While this is True, the script will always assume this mod is loaded. + key (optional): String that serves as a key for this mod in the cw_parser.registered_mods dictionary. + compat_var (optional): Sets the compat_var property, which is for holding the name of this mod's compatibility variable. Nothing in this module accesses this property; feel free to leave it empty unless your script needs it. + ''' + + def __init__(self, workshop_item: str | None = None, mod_path: str | None = None, parents: list[Mod] = [], + is_base: bool = False, key: str | None = None, compat_var: str | None = None) -> None: + if mod_path is None: + self.mod_path = os.path.join(globalSettings['workshop_path'], workshop_item) + else: + self.mod_path = mod_path + self.parents = parents + self.is_base = is_base + self.key = key + if key is not None: + registered_mods[key] = self + self.compat_var = compat_var + self.content_dictionaries = {} + self.content_lists = {} + self.mod_name = '[UNNAMED]' + globalSettings['mod_order'] = [self] + globalSettings['mod_order'] + self.metascripts_loaded = False + self.load_global_variables() + self.giveName() + if self.is_base and vanilla_mod_object is not None: + vanilla_mod_object.inherit_content_dictionary('global_variables') + + def __str__(self) -> str: + return self.mod_name + + def load_global_variables(self) -> Self: + self.generate_content_dictionary('global_variables', in_common('scripted_variables'), + primary_key_rule=lambda x: x.name[1:], replace_local_variables=False) + self.inherit_content_dictionary('global_variables') + return self + + def giveName(self): + descriptor_path = os.path.join(self.mod_path, 'descriptor.mod') + if os.path.exists(descriptor_path): + descriptor = fileToCW(descriptor_path) + self.mod_name = descriptor.getValue('name') + else: + self.mod_name = "Vanilla" + + def activate(self): + '''sets this mod as the current active mod - inline scripts and global variables will be sourced from this mod, its parents, and mods where base=True''' + configure('context_mod', self) + + def load_metascripts(self) -> Self: + '''Loads scropted triggers and effects.''' + for mod in self.inheritance(): + if not mod.metascripts_loaded: + mod.generate_content_dictionary('scripted_triggers', in_common('scripted_triggers'), + bracketClass=metaScript, replace_local_variables=True) + mod.generate_content_dictionary('scripted_effects', in_common('scripted_effects'), + bracketClass=metaScript, replace_local_variables=True) + mod.generate_content_dictionary('script_values', in_common('script_values'), bracketClass=metaScript, + replace_local_variables=True) + mod.metascripts_loaded = True + self.inherit_content_dictionary('scripted_triggers') + self.inherit_content_dictionary('scripted_effects') + self.inherit_content_dictionary('script_values') + return self + + def inheritance(self) -> Generator[Mod, None, None]: + '''yields the mod, then each of its parents in reverse load order, then vanilla''' + for mod in globalSettings['mod_order']: + if self.inherits_from(mod): + yield mod + + def inherits_from(self, other: Mod) -> bool: + return ((other == self) or other.is_base or (other in self.parents)) + + def lookupInline(self, inline: str) -> str: + '''returns the path to the file an inline script would find if used with this mod, its parents, and no other mods + parameters: + inline''' + inline_breakdown = inline.split('/') + inline_path = in_common('inline_scripts') + for folder in inline_breakdown: + inline_path = os.path.join(inline_path, folder) + for mod in self.inheritance(): + try_path = os.path.join(mod.mod_path, inline_path) + if os.path.exists(try_path + '.txt'): + return try_path + '.txt' + if os.path.exists(try_path): + return try_path + + def folder(self, *path: list[str]) -> str: + return os.path.join(self.mod_path, *path) + + def global_variables(self, key): + variables = self.content_dictionaries['global_variables'] + if key in variables: + return variables[key].value + else: + return None + + def scripted_triggers(self): + return self.content_dictionaries['scripted_triggers'] + + def scripted_effects(self): + return self.content_dictionaries['scripted_effects'] + + def script_values(self): + return self.content_dictionaries['script_values'] + + def getFiles(self, path: str, exclude_files: list[str] = [], include_parents: bool | None = None, + file_suffix: str = '.txt'): + if include_parents is None: + include_parents = self.is_base + exclude_files = exclude_files.copy() + exclude_files.append('99_README_EDICTS.txt') # please no-one else do whatever this one Vanilla file is doing + for mod in self.inheritance(): + if (mod == self) or include_parents: + folder = mod.folder(path) + if os.path.exists(folder): + for file in os.listdir(path=folder): + if file.endswith(file_suffix) and not file in exclude_files: + filepath = os.path.join(folder, file) + exclude_files.append(file) + yield filepath + + def read_folder(self, path: str, exclude_files: list[str] = [], replace_local_variables: bool | None = None, + include_parents: bool | None = None, file_suffix: str = '.txt', + parser_commands: str | list[str] | None = None, overwrite_type: str | None = 'LIOS', + bracketClass: type = CWListValue, save: bool = True, save_key: str | None = None, + print_filenames: bool = False, always_read: bool = False) -> CWList[CWElement]: + '''reads and parses the files in the specified folder in this mod into a CWList object + parameters: + path: the path to the specified folder, relative to the mod + exclude_files (optional): a lost of filenames to skip, e.g. because the entries within are dummy elements or because they're assumed to have been overwritten + replace_local_variables (optional): if True, locally-defined scripted variables will be replaced with their values. + include_parents (optional): if True, also load contents of parent folders that aren't file-overwritten + file_suffix (optional): only files with this suffix will be read. Default '.txt' + save (optional): if not set to False, the returned CWList is saved to the mod's content_lists dictionary. + save_key (optional): key under which to save to the content_lists dictionary. Defaults to path. + print_filenames (optional): if True, the function will print the name of each file as it reads it. + parser_commands (optional): if this is set to a string or list of strings, the following tags will be enabled (where KEY stands for any of the entered strings): + "#KEY:skip", "#KEY:/skip": ignore everything between these tags (or from the "#KEY:skip" to the end of the string if "#KEY:/skip" is not encountered) + "#KEY:add_metadata::": set the specified attribute in the "metadata" dictionary to the specified value for the next object + "#KEY:add_block_metadata::", "#KEY:/add_block_metadata:": set the specified attribute in the "metadata" dictionary to the specified value for each top-level object between these tags + ''' + CW_list = None + if include_parents is None: + include_parents = self.is_base + if (path in self.content_lists) and not always_read: + return self.content_lists[path] + else: + CW_list = CWList(bracketClass=bracketClass) + for filepath in self.getFiles(path, exclude_files=exclude_files, include_parents=include_parents, + file_suffix=file_suffix): + if print_filenames: + print(filepath) + CW_list = CW_list + fileToCW(filepath, replace_local_variables=replace_local_variables, + parser_commands=parser_commands, overwrite_type=overwrite_type, + bracketClass=bracketClass, mod=self) + if save: + if save_key is None: + save_key = path + self.content_lists[save_key] = CW_list + return CW_list + + def inherit_content_dictionary(self, key): + new_dict = self.content_dictionaries.setdefault(key, {}) + for mod in self.inheritance(): + old_dict = mod.content_dictionaries.setdefault(key, {}) + for k in old_dict: + obj = old_dict[k] + if (not k in new_dict) or (obj.overwrites(new_dict[k], default=False)): + new_dict[k] = obj + + def generate_content_dictionary(self, key, folder_path, primary_key_rule=lambda e: e.name, + element_filter=lambda _: True, **kwargs): + list = self.read_folder(path=folder_path, **kwargs) + content_dict = self.content_dictionaries.setdefault(key, {}) + for element in list: + if element_filter(element): + content_dict[primary_key_rule(element)] = element + + def load_events(self): + eventTypes = globalSettings['eventTypes'] + self.content_dictionaries['events'] = {} + events = self.read_folder('events', overwrite_type='FIOS', print_filenames=True) + for event in events.contents(): + if event.hasSubelements(): + event_id = event.getValue('id', resolve=True) + self.content_dictionaries['events'][event_id] = event + if event.name.lower() in eventTypes: + globalData['eventScopes'][event_id] = scopesContext(eventTypes[event.name.lower()], lock=True) + + def load_on_actions(self): + on_actions = self.read_folder(in_common('on_actions'), overwrite_type='merge') + for on_action in on_actions.contents(): + onActionScopes(on_action.name) + + def activate_on_actions(self): + eventScopes = globalData['eventScopes'] + for on_action in self.content_lists[in_common('on_actions')].contents(): + if on_action.hasAttribute('random_events'): + for event in on_action.getElement('random_events').contents(): + event_key = event.resolve() + if event_key != '0': + eventScopes[event_key].add(onActionScopes(on_action.name)) + if on_action.hasAttribute('events'): + for event in on_action.getElement('events').contents(): + event_key = event.resolve() + if event_key in eventScopes: # excludes '0' and also missing events + eventScopes[event_key].add(onActionScopes(on_action.name)) + + def events(self) -> Generator[CWElement, None, None]: + yield from self.content_lists['events'].contents() + + +class metascriptSubstitution(): + def __init__(self, keys: list[str] = [], default: str | None = ''): + self.keys = keys + self.default = '' + + def parse(self, tokens: tokenizer) -> Self: + params = [] + for token in tokens.metascriptSubstitutionTokens: + if token == '|': + pass + elif token == '$': + if len(params) > 1: + self.default = params.pop() + self.keys = params + return self + else: + params.append(token) + + def inst(self, params: dict[str, str]) -> str: + for key in self.keys: + if key.lower() in params: + return params[key.lower()] + if self.default is None: + print(self.keys) + print(params) + return self.default + + +class metascriptConditional(): + def __init__(self, key: str | None = None, valence: bool = True): + self.key = key + self.valence = valence + self.rawContents = [] + + def parse(self, tokens: tokenizer) -> Self: + brackets = 0 + for token in tokens.metascriptConditionalTokens: + if token == '[' and self.key is None: + key = tokens.string_before(']') + if key.startswith('!'): + self.key = key[1:] + self.valence = False + else: + self.key = key + self.valence = True + elif token == '$': + self.rawContents.append(metascriptSubstitution().parse(tokens)) + else: + if token == '@[': + brackets += 1 + elif token == ']': + if brackets >= 0: + return self + else: + self.brackets -= 1 + self.rawContents.append(token) + + def inst(self, params: dict[str, str]) -> str: + if ((self.key.lower() in params) and (params[self.key.lower()] != 'no')) == self.valence: + inst = '' + for section in self.rawContents: + if isinstance(section, str): + inst += section + else: + inst += section.inst(params) + return inst + else: + return '' + + +class metaScript(): + def __init__( + self, + parent_element: CWElement = None, + **_, # because other possible bracketClass values have more init and parse parameters + ): + super().__init__() + self.rawContents = [] + self.memory_optimized = False + self.default = CWListValue() + self.parent_element = parent_element + + def parse(self, tokens: tokenizer, **_) -> Self: + brackets = 0 + for token in tokens.metascriptTokens: + if isinstance(token, parserCommandObject): + token = token.restoreString() + if token == 'optimize_memory': + self.memory_optimized = True + elif token == '"': + self.rawContents.append('"{}"'.format(tokens.getQuotedString())) + elif token == '$': + self.rawContents.append(metascriptSubstitution().parse(tokens)) + elif token == '[': + self.rawContents.append(metascriptConditional().parse(tokens)) + else: + if token == '{': + brackets += 1 + elif token == '}': + if brackets <= 0: + # self.updateDefault() + return self + else: + brackets -= 1 + self.rawContents.append(token) + + def inst(self, params: dict[str, str] = {}): + inst = '' + params = {key.lower(): params[key] for key in params} + for section in self.rawContents: + if isinstance(section, str): + inst += section + else: + inst += section.inst(params) + return stringToCW( + inst, + filename=self.parent_element.filename, + mod=self.parent_element.mod, + parent=self.parent_element, + ) + + def updateDefault(self): + try: + self.default = self.inst() + except TypeError: + self.default = None + + +def stringToCW(string: str, filename: str | None = None, parent: CWElement | None = None, + replace_local_variables: bool | None = None, parser_commands: str | list[str] | None = None, + overwrite_type: str | None = None, mod: Mod | None = None, bracketClass: type = CWListValue, + debug=False) -> CWList[CWElement]: + '''parses a string into a CWList object + parameters: + string: The string to convert. + filename (optional): Marks CWElements as being from the specified file. + parent (optional): Marks CWElements as being children of the specified CWElement. + replace_local_variables (optional): if True, locally-defined scripted variables will be replaced with their values. + parser_commands (optional): if this is set to a string or list of strings, the following tags will be enabled (where KEY stands for any of the entered strings): + "#KEY:skip", "#KEY:/skip": ignore everything between these tags (or from the "#KEY:skip" to the end of the string if "#KEY:/skip" is not encountered) + "#KEY:add_metadata::": set the specified attribute in the "metadata" dictionary to the specified value for the next object + "#KEY:add_block_metadata::", "#KEY:/add_block_metadata:": set the specified attribute in the "metadata" dictionary to the specified value for each top-level object between these tags + ''' + parser_commands = defaultToGlobal(parser_commands, 'parser_commands') + replace_local_variables = defaultToGlobal(replace_local_variables, 'replace_local_variables') + tokens = tokenizer(string, parser_commands, debug=debug) + if parent is None: + local_variables = {} + else: + local_variables = parent.local_variables + return CWList(bracketClass=bracketClass).parse( + tokens, + replace_local_variables, + local_variables, + element_params={ + 'filename': filename, + 'mod': mod, + 'overwrite_type': overwrite_type, + }, + debug=debug, + ) + + +def fileToCW(path: str, filename: str | None = None, parent: CWElement | None = None, + replace_local_variables: bool | None = None, parser_commands: str | list[str] | None = None, + overwrite_type: str | None = 'LIOS', mod: Mod | None = None, bracketClass: type = CWListValue, + debug=False) -> CWList[CWElement]: + '''reads and parses a file into a list of CWElement objects + parameters: + path: The file path. + parent (optional): Marks CWElements as being children of the specified CWElement (for use in the CWElement.replaceInlines method). + replace_local_variables (optional): if True, locally-defined scripted variables will be replaced with their values. + parser_commands (optional): if this is set to a string or list of strings, the following tags will be enabled (where KEY stands for any of the entered strings): + "#KEY:skip", "#KEY:/skip": ignore everything between these tags (or from the "#KEY:skip" to the end of the string if "#KEY:/skip" is not encountered) + "#KEY:add_metadata::": set the specified attribute in the "metadata" dictionary to the specified value for the next object + "#KEY:add_block_metadata::", "#KEY:/add_block_metadata:": set the specified attribute in the "metadata" dictionary to the specified value for each top-level object between these tags + ''' + file = open(path, "r", encoding='utf-8') + fileContents = file.read() + if filename is None: + filename = os.path.basename(path) + cw = stringToCW(fileContents, filename=filename, parent=parent, replace_local_variables=replace_local_variables, + parser_commands=parser_commands, overwrite_type=overwrite_type, mod=mod, bracketClass=bracketClass, + debug=debug) + return cw + + +vanilla_mod_object = Mod(mod_path=globalSettings['vanilla_path'], is_base=True, key='base', compat_var='1') + + +def set_vanilla_path(path: str): + '''tells the module where to find vanilla content''' + configure('vanilla_path', path) + vanilla_mod_object.mod_path = path + + +def set_mod_docs_path(path: str): + '''tells the module where to find your mods''' + configure('mod_docs_path', path) + + +def set_workshop_path(path: str): + '''tells the module where to find steam workshop mods''' + configure('workshop_path', path) + + +def set_expand_inlines(value: bool): + '''switches whether to look inside inline scripts by default when reading CWList content''' + configure('expand_inlines', value) + + +def set_replace_local_variables(value: bool): + '''switches whether to replace local variables by default when parsing strings''' + configure('replace_local_variables', value) + + +def set_parser_commands(value: list[str]): + '''switches what parser command identifiers to use''' + configure('parser_commands', value) + + +def set_load_order(mods: list[Mod]): + '''given a list of mods, move those mods to the end of assumed load order (with the first listed mod coming last)''' + load_order = globalSettings['mod_order'] + for mod in mods: + load_order.remove(mod) + configure('mod_order', mods + load_order) + + +class scopeUnpackable(ABC): + @abstractmethod + def unpack(self, unpackTree: set | None = None) -> Iterator[str]: + pass + + +class scopeSet(scopeUnpackable): + def __init__(self, *args, locked=False) -> None: + self.unpacked_scopes = set() + self.pointers = [] + self.unpacked = True + self.locked = False + for item in args: + self.add(item) + self.locked = locked + + def add(self, item): + if not self.locked: + if isinstance(item, str): + self.unpacked_scopes.add(item) + if isinstance(item, scopeUnpackable) and not (item in self.pointers): + self.pointers.append(item) + self.unpacked = False + + def unpack(self, unpackTree: list[scopeUnpackable] | None = None) -> set[str]: + if unpackTree is None: + unpackTree = [] + unpackTree.append(self) + for item in self.pointers: + if not item in unpackTree: + self.unpacked_scopes.update(item.unpack()) + return self.unpacked_scopes + + +def toScopes(input) -> scopeSet: + if isinstance(input, scopeSet): + return input + if isinstance(input, list): + return scopeSet(*input) + if isinstance(input, str): + return scopeSet(input) + + +def eventTarget(key: str) -> scopeSet: + event_targets = globalData['eventTargets'] + if '@' in key: + key = key.split('@')[0] + '@' + return event_targets.setdefault(key, scopeSet()) + + +def onActionScopes(key: str) -> scopesContext: + return globalData['onActionScopes'].setdefault(key, scopesContext()) + + +def decomposeChain(s: str) -> list[str]: + return s.lower().split('.') + + +def isScopeChain(chain: list[str]) -> bool: + for unit in chain: + if not ( + (unit in ['root', 'this', 'target', 'prev', 'prevprev', 'prevprevprev', 'prevprevprevprev', 'from', + 'fromfrom', 'fromfromfrom', 'fromfromfromfrom', ]) + or + (unit in globalSettings['scopeTransitions']) + or + (unit.startswith('event_target:')) + or + (unit.startswith('parameter:')) + ): + return False + return True + + +class scopesContext(): + '''Class for representing the context of an effect, trigger etc. in terms of whether it's in country scope, ship scope etc. and where "from" and "prev" point to. + Scope list can be accessed using the unpackThis() method. + public properties: + prev: a scopesContext corresponding to the "prev" scope + root: a scopesContext corresponding to the "root" scope + froms: a list containing the from, fromfrom, fromfromfrom, fromfromfromfrom, fromfromfromfrom.from etc. If you run into the end of this list, try increasing cw_parser.globalSettings['max_from_depth'] + ''' + + def __init__(self, this=None, *args, froms=[], root=None, prev=None, lock=False) -> None: + froms = list(args) + froms + self.froms = [toScopes(f) for f in froms] + while len(self.froms) < globalSettings['max_from_depth']: + self.froms.append(scopeSet()) + if root is None: + self.root = self + elif isinstance(root, scopesContext): + self.root = root + elif isinstance(root, str): + self.root = scopesContext(root, froms=froms) + if this is None: + self.this = scopeSet() + else: + self.this = toScopes(this) + if isinstance(prev, list): + if len(prev) > 0: + self.prev = scopesContext(prev.pop(), root=self.root, froms=self.froms, prev=prev) + else: + self.prev = None + else: + self.prev = prev + if self.prev is None: + self.prev = self + if lock: + self.this.locked = True + + def add(self, other: Self): + self.this.add(other.this) + for i in range(globalSettings['max_from_depth']): + self.froms[i].add(other.froms[i]) + + def step(self, scope): + return scopesContext( + this=scope, + root=self.root, + froms=self.froms, + prev=self, + ) + + def toFrom(self, count): + froms = copy(self.froms) + for i in range(count): + if len(froms) < 1: + maxFromDepth = globalSettings['max_from_depth'] + raise ShallowFromsException( + f'Max from depth too low; set to {maxFromDepth}, tried to access from depth {maxFromDepth + count - i}') + result = froms.pop(0) + self.this = result + self.froms = froms + + def setThisKey(self, key): + self.this = scopeSet(key) + + def link(self, commands: list[str] | str): + '''takes a string such as "prev.owner" and returns a scopesContext correspondinf to where that string would lead to.''' + if isinstance(commands, str): + commands = decomposeChain(commands) + context = copy(self) + scopeTransitions = globalSettings['scopeTransitions'] + for command in commands: + command = command.lower() + if command == 'root': + context = copy(context.root) + elif command == 'prev': + context = copy(context.prev) + elif command == 'prevprev': + context = copy(context.prev.prev) + elif command == 'prevprevprev': + context = copy(context.prev.prev.prev) + elif command == 'prevprevprevprev': + context = copy(context.prev.prev.prev.prev) + elif command == 'from': + context.toFrom(1) + elif command == 'fromfrom': + context.toFrom(2) + elif command == 'fromfromfrom': + context.toFrom(3) + elif command == 'fromfromfromfrom': + context.toFrom(4) + elif command in scopeTransitions: + context.setThisKey(scopeTransitions[command]) + elif command == 'target': + context.setThisKey('[TARGET]') + elif command.startswith('event_target:'): + key = command.split(':')[1] + context.this = eventTarget(key) + elif command.startswith('parameter:'): + context.setThisKey('country') + context.prev = self + return context + + def firedContext(self): + froms = [self.root.this] + copy(self.root.froms) + froms.pop() + return scopesContext(self.this, froms=froms) + + def unpackThis(self): + '''Returns a list of strings representing the possible "this" scopes for this context. + Possible values for Stellaris: + - "none" (for e.g. effects directly under an on_game_start event's "immediately" block) + - "country" + - "pop_faction" + - "first_contact" + - "situation" + - "agreement" + - "federation" + - "archaeological_site" + - "spy_network" + - "espionage_asset" + - "megastructure" + - "planet" + - "ship" + - "pop" + - "fleet" + - "galactic_object" + - "leader" + - "army" + - "ambient_object" + - "species" + - "design" + - "war" + - "alliance" + - "starbase" + - "deposit" + - "observer" + - "sector" + - "astral_rift" + - "espionage_operation" + - "design" + - "cosmic_storm" + plus the following strings corresponding to contexts where I found figuring out the appropriate scopes automatically was too complicated: + - "[EFFECT_BUTTON_SCOPE]" + - "[TARGET]" (for anything selected for being the target of an espionage operation, situation, spy network, or agreement) + - "[COUNTRY_CREATION_ANTECEDENT]" + - "[SOLAR_SYSTEM_INITIALIZER_ANTECEDENT]" + ''' + return self.this.unpack() + + def __repr__(self): + return str(self.this.unpack()) + + def __str__(self): + if self.prev is None: + prevtext = "None" + else: + prevtext = str(self.prev.unpackThis()) + fromtext = [] + for f in self.froms: + fromtext.append(str(f.unpack())) + else: + return f"{self.root.unpackThis()}->{self.unpackThis()} Prev: {prevtext} From: {''.join(fromtext)}" + + +def findEffectScopes(criteria: Callable[[CWElement], bool], mods: Iterator[Mod] = registered_mods.values()) -> list[ + tuple[CWElement, scopesContext]]: + '''Scans all effect blocks (except, currently, those in queue_actions blocks) and returns a list of (CWElement,scopesContext) tuples corresponding to effects. + Note: this function requires game-specific configuration. Stellaris configuration can be set up by importing and running cwp_stellaris.configureCWP(). + parameters: + criteria: A callable taking a CWElement and returning a boolean. Effects will be included in the returned list where criteria(effect) return True. + mods (optional): An iterator returning mods. This function will scan all mods returned by this iterator. Default is cw_parser.registered_mods.values(). When the iterator returns a mod where is_base=True (for example, when cw_parser.registered_mods.values() returns the vanilla mod object), this function will also scan all mods where is_base=True.''' + configure('expand_inlines', True) + configure('replace_local_variables', True) + for mod in mods: + mod.activate() + print(f'loading metascripts for mod {str(mod)}') + mod.load_metascripts() + print(f'loading events for mod {str(mod)}') + mod.load_events() + print(f'loading on_actions for mod {str(mod)}') + mod.load_on_actions() + + print('applying hardcoded on_actions') + hardcodedOnActions = globalSettings['hardcodedOnActions'] + for on_action in hardcodedOnActions: + onActionScopes(on_action).add(hardcodedOnActions[on_action]) + + for mod in mods: + mod.activate() + globalSettings['effectParseAdditionalSetup'](mod) + print(f'activating on_actions for mod {str(mod)}') + mod.activate_on_actions() + + effectLocations = globalSettings['effectLocations'] + output_effects = [] + for mod in mods: + mod.activate() + for folder in effectLocations: + print(f'processing mod "{str(mod)}" folder "{folder}"') + for (effectBlock, scopes) in mod.read_folder(folder).navigateByDict(effectLocations[folder]): + for effect in effectBlock.effectScopingRun(scopes, criteria): + output_effects.append(effect) + print(f'processing mod "{str(mod)}" events') + for event in mod.events(): + if event.hasSubelements(): + scopes = globalData['eventScopes'][event.getValue('id', resolve=True)] + for element in event.contents(): + if element.name in ['immediate', 'option', 'after', 'abort_effect']: + for effect in element.effectScopingRun(scopes, criteria): + output_effects.append(effect) + elif event.name == 'namespace': + print(f'namespace {event.value}') + for (effectBlock, scopes) in globalSettings['additionalEffectBlocks'](mod): + for effect in effectBlock.effectScopingRun(scopes, criteria): + output_effects.append(effect) + + return output_effects \ No newline at end of file