Обсуждение правил
РезолюцияИзменено в этой версии

Обсуждение правил

policy_votein_game/common/resolutions/policy_vote.txt:1

Policy Vote Desc

ТребуетКатолическая церковьМеждународное объединениеcan vote, votesУнияМеждународное объединениеeffect, reject effect, select trigger 2, votesСпонсор лигиОсобый статусcan voteСтарший партнёрОсобый статусselect trigger 2Религиозные делаПравилоselect trigger 2Запрещено голосовать за несколько политик сразуТип модификатораselect trigger 3Промежуток между голосованиями за политикуТип модификатораselect trigger 1Необходимое соотношение голосов за политикуТип модификатораtotal votes neededОтмена привилегииПолитикаvote effectОпределение старшинстваПолитикаselect trigger 2Тридентский соборСитуацияcan votedont_trigger_abstain_effectПеременнаяabstain effect

Определениеin_game/common/resolutions/policy_vote.txt:1

4potential = {
}
7allow = {
}
10days = 365
11ai_tick = daily
14proposal_price = price:policy_vote
15price = {
16if = {
17limit = {
18exists = scope:vote
}
20scope:vote = {
21value = price
}
}
}
26requires_vote = {
27always = yes
}
30total_votes_needed = {
31if = {
38add = {
39value = scope:total_votes_available
40multiply = scope:recipient.modifier:policy_vote_required_vote_ratio
}
}
43else = {
44add = {
45value = scope:total_votes_available
46divide = 2
}
}
}
51select_trigger = {
52top_widget = law_card_header_at_io_policy_select
53looking_for_a = international_organization
54target_flag = recipient
55name = "choose_international_organization" Выберите Concept:
56column = {
57data = name
}
59visible = {
}
61enabled = {
62trigger_if = {
63limit = {
64is_proposal = {
64international_organization = scope:recipient
64resolution = resolution:policy_vote
}
}
67can_initiate_policy_votes = scope:actor
}
69trigger_else_if = {
70limit = {
71is_vote = {
71international_organization = scope:recipient
71resolution = resolution:policy_vote
}
}
74OR = {
75can_initiate_policy_votes = scope:actor
76has_member = scope:actor
}
}
79trigger_else = {
81hidden_trigger = {
81always = yes
}
}
86trigger_if = {
87limit = {
}
88NOT = {
88has_cooldown = io_policy_vote_active_cooldown
}
}
91trigger_if = {
93OR = {
94has_ongoing_parliament_debate = no
95parliament_issue ?= parliament_issue:hre_law_debate
}
}
}
}
101select_trigger = {
102top_widget = law_card_header_at_io_policy_select
103looking_for_a = law
104target_flag = target
105name = "policy_vote_select_law" Выберите Concept для обсуждения:
106none_available_msg_key = "policy_vote_no_laws"
107column = {
108data = name
}
110visible = {
111requires_vote = yes
112scope:recipient = {
113law_visible_to_international_organization = root
}
}
116enabled = {
117scope:recipient ?= {
118trigger_if = {
119limit = {
120international_organization_has_leader = yes
}
123trigger_if = {
124limit = {
125is_proposal = {
125international_organization = scope:recipient
125resolution = resolution:policy_vote
}
}
128OR = {
129leader_country = scope:actor
130root = {
}
}
}
133trigger_else_if = {
134limit = {
135is_vote = {
135international_organization = scope:recipient
135resolution = resolution:policy_vote
}
}
138or = {
140not = {
140resolution_is_active = resolution:policy_vote
}
142active_resolution(resolution:policy_vote) ?= {
143resolution_target(target) ?= root
}
}
}
147trigger_else = {
149hidden_trigger = {
149always = yes
}
}
}
152trigger_else_if = {
153limit = {
154international_organization_type = international_organization_type:union
155international_organization_has_policy = policy:union_establish_seniority_policy
}
158trigger_if = {
159limit = {
160is_proposal = {
160international_organization = scope:recipient
160resolution = resolution:policy_vote
}
}
163OR = {
164country_has_special_status = {
166country = scope:actor
}
168root = {
}
}
}
171trigger_else_if = {
172limit = {
173is_vote = {
173international_organization = scope:recipient
173resolution = resolution:policy_vote
}
}
176or = {
178not = {
178resolution_is_active = resolution:policy_vote
}
180active_resolution(resolution:policy_vote) ?= {
181resolution_target(target) ?= root
}
}
}
185trigger_else = {
187hidden_trigger = {
187always = yes
}
}
}
190trigger_else = {
191trigger_if = {
192limit = {
193is_proposal = {
193international_organization = scope:recipient
193resolution = resolution:policy_vote
}
}
196always = yes
}
198trigger_else_if = {
199limit = {
200is_vote = {
200international_organization = scope:recipient
200resolution = resolution:policy_vote
}
}
203or = {
205not = {
205resolution_is_active = resolution:policy_vote
}
207active_resolution(resolution:policy_vote) ?= {
208resolution_target(target) ?= root
}
}
}
212trigger_else = {
214hidden_trigger = {
214always = yes
}
}
}
217trigger_if = {
218limit = {
219root = {
219NOT = {
219has_tag = no_ai_propose_cd
}
}
220is_proposal = {
220international_organization = scope:recipient
220resolution = resolution:policy_vote
}
221scope:actor = {
222is_ai = yes
}
}
225NOT = {
226is_target_in_variable_list = {
227name = law_debate_cooldowns
228target = root
}
}
}
}
234scope:recipient = {
235not = {
235law_is_locked_in_international_organization = root
}
236trigger_if = {
237limit = {
237NOT = {
237resolution_is_active = resolution:policy_vote
}
}
238law_enabled_to_international_organization = root
}
}
242trigger_if = {
243limit = {
244scope:recipient = {
}
}
248custom_tooltip = {
249text = sc_block_votes_on_non_religious_policies_tt Единственное Concept, которое можно принять — «Религиозные дела»
}
}
}
}
257select_trigger = {
258top_widget = law_card_header_at_io_policy_select
259looking_for_a = policy
260source = target
261target_flag = vote
263allow_null = {
264scope:target = {
265NOT = {
265has_tag = forbids_no_policy
}
}
}
268name = "policy_vote_select_policy" Выберите, за какую Concept проголосовать:
269none_available_msg_key = "policy_vote_no_policies"
270column = {
271data = policy_voting
}
273visible = {
274scope:recipient ?= {
275policy_visible_to_international_organization = root
}
}
278enabled = {
279law ?= scope:target
280scope:recipient = {
281trigger_if = {
282limit = {
283NOT = {
284resolution_is_active = resolution:policy_vote
}
}
287policy_enabled_to_international_organization = root
}
290custom_tooltip = {
291text = policy_vote_select_policy_at Выбранная Concept ещё не закреплена в объединении «Recipient»
292trigger_if = {
293limit = {
294exists = scope:actor
295exists = scope:proposer
296scope:actor = scope:proposer
297NOT = {
298resolution_is_active = resolution:policy_vote
}
}
301not = {
301international_organization_has_policy = root
}
}
}
305custom_tooltip = {
306text = policy_vote_select_policy_ct Целевая Concept либо уже действует, либо предложена в объединении «Recipient»
307trigger_if = {
308limit = {
310exists = scope:actor
311exists = scope:proposer
312scope:actor != scope:proposer
}
314OR = {
315international_organization_has_policy = root
316AND = {
317not = {
317resolution_is_active = resolution:policy_vote
}
318OR = {
319not = {
319exists = scope:previewed_vote
}
320scope:previewed_vote = root
321international_organization_has_policy = scope:previewed_vote
}
}
324AND = {
325has_variable = io_law_target
}
}
}
}
}
}
333selected = {
334scope:recipient = {
335international_organization_has_policy = root
}
}
}
339propose_effect = {
340hidden_effect = {
343if = {
344limit = {
344exists = scope:recipient
}
345scope:recipient = {
346if = {
347limit = {
347exists = scope:vote
}
348set_variable = {
349name = io_law_target
350value = scope:vote
}
352set_variable = {
354value = scope:vote
}
}
357if = {
358limit = {
359international_organization_has_law = scope:target
360scope:target = {
361any_policy_in_law = {
362scope:recipient = {
362international_organization_has_policy = prev
}
}
}
}
366scope:target = {
367random_policy_in_law = {
368limit = {
368scope:recipient = {
368international_organization_has_policy = prev
}
}
369save_scope_as = current_policy
370scope:recipient = {
371set_variable = {
372name = io_current_law
373value = scope:current_policy
}
}
}
}
}
379else = {
380scope:recipient = {
381remove_variable = io_current_law
}
}
384if = {
385limit = {
385exists = scope:proposer
}
386set_variable = {
387name = io_law_proposer
388value = scope:proposer
}
}
}
}
393if = {
394limit = {
395exists = scope:vote
396exists = scope:proposer
397exists = scope:recipient
}
399execute_propose_effect = {
400source = scope:vote
401actor = scope:proposer
402recipient = scope:recipient
}
}
407if = {
408limit = {
409exists = scope:recipient
410exists = scope:target
411scope:target = {
411NOT = {
411has_tag = no_ai_propose_cd
}
}
}
413scope:recipient = {
414add_to_variable_list = {
415name = law_debate_cooldowns
416target = scope:target
417years = 20
}
}
}
}
}
423effect = {
424if = {
425limit = {
425exists = scope:recipient
}
426if = {
427limit = {
427scope:recipient = {
427international_organization_type = international_organization_type:union
}
}
428scope:recipient = {
429hidden_effect = {
429remove_variable = ai_io_law_target
}
430if = {
431limit = {
432exists = scope:vote
433has_variable = io_current_law
434var:io_current_law = scope:vote
}
437target = supporters
}
}
441else_if = {
442limit = {
443exists = scope:vote
444has_variable = io_current_law
}
447target = opponents
}
}
451else = {
452custom_tooltip = apply_pu_estate_satisfaction_hit_tt Concept аристократов, священников и горожан, возражающие против Concept, получают estate satisfaction severe penalty к Concept
}
}
}
456if = {
457limit = {
457exists = scope:vote
}
458scope:recipient = {
459add_policy_to_international_organization = scope:vote
461hidden_effect = {
462pay_policy_price_effect = scope:vote
}
}
}
466hidden_effect = {
467scope:recipient = {
468if = {
469limit = {
471has_ongoing_parliament_debate = yes
}
473end_parliament = yes
}
}
}
}
480else = {
481custom_tooltip = policy_vote_tt Предложенная Concept закрепляется в Concept
}
484if = {
485limit = {
486exists = scope:recipient
487exists = scope:target
}
489hidden_effect = {
490scope:recipient = {
491add_to_variable_list = {
492name = ai_law_vote_cooldowns
493target = scope:target
494years = 20
}
}
}
}
}
500reject_effect = {
501if = {
502limit = {
503exists = scope:target
504scope:target = {
504NOT = {
504has_tag = forbids_no_policy
}
}
}
506scope:recipient = {
507remove_law_from_international_organization = scope:target
}
}
510if = {
511limit = {
511scope:recipient = {
511international_organization_type = international_organization_type:union
}
}
512scope:recipient = {
514target = supporters
}
}
}
519hidden_effect = {
520scope:recipient = {
521remove_variable = ai_io_law_target
522if = {
523limit = {
525has_ongoing_parliament_debate = yes
}
527end_parliament = no
}
}
}
534if = {
535limit = {
536exists = scope:recipient
537exists = scope:target
}
539hidden_effect = {
540scope:recipient = {
541add_to_variable_list = {
542name = ai_law_vote_cooldowns
543target = scope:target
544years = 20
}
}
}
}
}
550vote_effect = {
551if = {
552limit = {
552exists = scope:actor
}
553if = {
554limit = {
554scope:actor = {
554NOT = {
554has_variable = dont_trigger_vote_effect
}
}
}
555if = {
556limit = {
556exists = scope:recipient
}
557scope:actor = {
557set_variable = dont_trigger_vote_effect
}
}
}
561else = {
562scope:actor = {
562remove_variable = dont_trigger_vote_effect
}
}
564scope:recipient = {
565if = {
566limit = {
568has_ongoing_parliament_debate = yes
}
}
}
573scope:actor = {
574if = {
575limit = {
575exists = scope:vote
}
576if = {
577limit = {
}
578set_variable = voted_for_privilegia
}
580else = {
581remove_variable = voted_for_privilegia
}
}
}
}
}
587abstain_effect = {
588if = {
589limit = {
589country_exists = scope:actor
}
590if = {
591limit = {
591scope:actor = {
591NOT = {
591has_variable = dont_trigger_abstain_effect
}
}
}
592if = {
593limit = {
593exists = scope:recipient
}
594scope:actor = {
594set_variable = dont_trigger_abstain_effect
}
}
}
598else = {
599scope:actor = {
599remove_variable = dont_trigger_abstain_effect
}
}
601if = {
602limit = {
602exists = scope:recipient
}
603scope:recipient = {
604if = {
605limit = {
607has_ongoing_parliament_debate = yes
}
}
}
}
613scope:actor = {
614remove_variable = voted_for_privilegia
}
}
}
619can_vote = {
620trigger_if = {
621limit = {
623situation_is_active = no
}
625exists = scope:recipient
}
628scope:actor = {
629num_cardinals > 0
}
}
632trigger_else_if = {
633limit = {
635situation_is_active = yes
}
637exists = scope:recipient
}
640scope:actor = {
641is_member_of_international_organization = international_organization:catholic_church
}
}
644trigger_else_if = {
645limit = {
646exists = scope:recipient
647scope:recipient = {
}
}
651scope:actor = {
652country_combined_special_status_power(scope:recipient) > 0
}
}
655trigger_else_if = {
657limit = {
658exists = scope:recipient
659scope:actor = {
660has_special_status_in_international_organization = {
662international_organization = scope:recipient
}
}
}
666always = no
}
668trigger_else = {
669always = yes
}
}
673votes = {
674if = {
675limit = {
676exists = scope:recipient
}
679add = {
680desc = "[cardinals|e]"
681value = scope:actor.num_cardinals
}
683multiply = {
684desc = "[country_rank|e]"
685value = scope:actor.country_rank_level
686min = 1
}
}
689else_if = {
690limit = {
691exists = scope:recipient
692scope:recipient = {
}
}
696value = {
697desc = "[special_status_power|e]"
698value = {
699save_temporary_value_as = {
700name = special_status_power_value
701value = "scope:actor.country_combined_special_status_power(scope:recipient)"
}
703if = {
704limit = {
704exists = scope:special_status_power_value
}
705value = scope:special_status_power_value
}
707else = {
708value = 1
}
}
}
}
713else_if = {
714limit = {
715exists = scope:recipient
716scope:recipient = {
717international_organization_type = international_organization_type:union
}
}
720add = {
721desc = "[tax_base|e]"
722value = scope:actor.country_tax_base
}
}
725else = {
726value = 1
}
728min = 0
}
731ai_will_select = {
732if = {
733limit = {
734exists = scope:vote
735exists = scope:recipient
736exists = scope:target
737scope:recipient = {
738OR = {
739NOT = {
739has_variable_list = ai_law_vote_cooldowns
}
740NOT = {
740is_target_in_variable_list = {
740name = ai_law_vote_cooldowns
740target = scope:target
}
}
}
}
}
745if = {
746limit = {
746scope:vote = {
746policy_has_ai_propose_value = yes
}
}
747add = {
748desc = "POLICY_PROPOSE_BIAS" От желания предложить правило «Vote»
749value = "scope:vote.ai_policy_resolution_propose_bias(scope:actor|scope:recipient)"
}
}
752else = {
753add = {
754desc = "POLICY_VOTE_BIAS" От желания голосовать за правило «Vote»
755value = "scope:vote.ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
}
759if = {
760limit = {
761exists = scope:recipient
762exists = scope:target
763scope:recipient = {
764has_variable_list = ai_law_vote_cooldowns
765is_target_in_variable_list = {
765name = ai_law_vote_cooldowns
765target = scope:target
}
}
}
768subtract = {
769desc = "INERTIA" Может быть, позже?
770value = 10000
}
}
}
775ai_will_do = {
777if = {
778limit = {
779exists = scope:vote
780exists = scope:recipient
}
782add = {
783desc = "IO_BIAS"
784value = "ai_issue_voting_bias(scope:actor|scope:recipient|scope:vote)"
}
787add = {
789value = 0
790if = {
791limit = {
792scope:vote = {
792policy_has_ai_keep_value = yes
}
793scope:recipient = {
794international_organization_has_law = scope:target
795law_policy(scope:target) = scope:vote
}
}
798add = "scope:vote.ai_policy_resolution_keep_bias(scope:actor|scope:recipient)"
}
800else = {
801add = "scope:vote.ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
806if = {
807limit = {
808scope:recipient = {
809international_organization_has_law = scope:target
810law_policy(scope:target) != scope:vote
}
}
813if = {
814limit = {
814scope:recipient.law_policy(scope:target) = {
814policy_has_ai_keep_value = yes
}
}
815save_temporary_value_as = {
816name = policy_vote_keep_value
817value = "scope:recipient.law_policy(scope:target).ai_policy_resolution_keep_bias(scope:actor|scope:recipient)"
}
}
820else = {
821save_temporary_value_as = {
822name = policy_vote_keep_value
823value = "scope:recipient.law_policy(scope:target).ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
826if = {
827limit = {
827exists = scope:policy_vote_keep_value
}
828if = {
829limit = {
829scope:policy_vote_keep_value > 0
}
830subtract = {
831desc = "POLICY_WANTS_TO_KEEP_CURRENT_POLICY"
832value = scope:policy_vote_keep_value
}
}
835else = {
836subtract = {
837desc = "POLICY_WANTS_TO_REMOVE_CURRENT_POLICY"
838value = scope:policy_vote_keep_value
}
}
}
}
845if = {
846limit = {
847scope:recipient = {
848resolution_is_active = resolution:policy_vote
849international_organization_has_law = scope:target
850law_policy(scope:target) = scope:vote
851has_variable = ai_io_law_target
852var:ai_io_law_target != scope:vote
}
}
855subtract = {
856desc = "POLICY_REASON_TO_VOTE_FOR_PROPOSED_POLICY"
857value = "scope:recipient.var:ai_io_law_target.ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
860else_if = {
861limit = {
862exists = scope:previewed_vote
863scope:recipient = {
864NOT = {
864resolution_is_active = resolution:policy_vote
}
866international_organization_has_law = scope:target
867law_policy(scope:target) = scope:vote
868NOT = {
868international_organization_has_policy = scope:previewed_vote
}
}
}
871subtract = {
872desc = "POLICY_REASON_TO_VOTE_FOR_PREVIEWED_POLICY"
873value = "scope:previewed_vote.ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
876else_if = {
877limit = {
878scope:recipient = {
879NOT = {
879resolution_is_active = resolution:policy_vote
}
880international_organization_has_law = scope:target
}
882OR = {
883NOT = {
883exists = scope:previewed_vote
}
884NOT = {
884scope:recipient = {
}
}
885scope:recipient = {
885international_organization_has_policy = scope:previewed_vote
}
}
}
888scope:target = {
889ordered_policy_in_law = {
890limit = {
891this != scope:vote
892scope:recipient = {
892policy_enabled_to_international_organization = prev
}
}
894order_by = "ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
895max = 1
896check_range_bounds = no
897save_temporary_scope_as = evaluation_policy
}
}
900if = {
901limit = {
901exists = scope:evaluation_policy
}
902subtract = {
903desc = "POLICY_REASON_TO_VOTE_FOR_TARGET"
904value = "scope:evaluation_policy.ai_policy_resolution_vote_bias(scope:actor|scope:recipient)"
}
}
}
910add = {
911desc = "POLICY_MODIFIER_UTILITY"
912value = "scope:vote.modifier_utility(scope:actor)"
913multiply = 4
}
}
}