2024-07-28 00:31:07
All checks were successful
sync / build (push) Successful in 53s

This commit is contained in:
actions[bot]
2024-07-28 00:31:07 +08:00
parent a902008032
commit 9951218126
12 changed files with 236 additions and 2075 deletions

View File

@@ -7,7 +7,7 @@ DH1_decision_category = {
highlight_color_while_active = 1
ai_will_do = {
base = 20
base = 50
modifier = {
DH1 = {
has_idea = DH1_AI_xiuyangshengxi
@@ -87,7 +87,13 @@ DH1_decision_category = {
}
}
ai_will_do = {
factor = 20
base = 50
modifier = {
DH1 = {
has_idea = DH1_AI_xiuyangshengxi
}
add = 100
}
}
cost = 250
days_remove = 180

View File

@@ -1,148 +1,68 @@
#If you change the values loc for az_NSB_border_incident_delay_until_new_incident_180 and az_NSB_border_incident_delay_until_new_incident_120 has to be changed
@border_incident_escalation_countdown = 5
@border_conflict_incident_forgotten_timer = 30
@border_conflict_escalate_to_war_countdown = 45
@border_conflict_time_until_cancelled = 360
# Using BCE values for AI
DH1_yuanzheng_decision_category = {
DH1_decision_category = {
DH1_debug_1 = {
icon = border_war
visible = {
is_debug = yes
}
available = {
is_ai = no
}
days_remove = 0
complete_effect = {
complete_national_focus = DH1_zhongnanbandao
complete_national_focus = DH1_beibeibeiqilexingnang
complete_national_focus = DH1_nanyacidalu
for_loop_effect = {
start = 0
end = 20
add = 1
random_owned_controlled_state = {
create_unit = {
division = "name = \"民兵团\" division_template = \"军团\" start_experience_factor = 0.3 start_equipment_factor = 1"
owner = ROOT
}
}
}
add_political_power = 1000
}
}
DH1_yuanzheng_mission = {
icon = border_war
available = {
FROM = {
any_owned_state = {
is_controlled_by = FROM
OR = {
AND = {
OR = {
DH1 = {
has_completed_focus = DH1_zhongnanbandao
}
is_debug = yes
}
OR = {
is_core_of = BRM
is_core_of = VIN
is_core_of = LAO
is_core_of = SIA
is_core_of = MAL
is_core_of = CAM
}
}
AND = {
OR = {
DH1 = {
has_completed_focus = DH1_nanyacidalu
}
is_debug = yes
}
OR = {
is_core_of = RAJ
is_core_of = PAK
is_core_of = BAN
state = 320
state = 321
}
}
}
any_neighbor_state = {
is_fully_controlled_by = ROOT
set_temp_variable = {
var:attacker_state_temp = id
}
has_ROOT_at_least_1_div_in_current_state_scope = yes
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
}
NOT = {
has_state_flag = border_incident_active
}
set_temp_variable = {
var:defender_state_temp = id
}
}
}
}
visible = {
FROM = {
exists = yes
}
NOT = {
AND = {
has_war_with = FROM
is_ai = yes
}
}
FROM = {
has_not_initiated_border_incident_with_ROOT = yes
}
FROM = {
NOT = {
is_subject_of = ROOT
}
NOT = {
is_in_faction_with = ROOT
}
}
NOT = {
is_subject_of = FROM
}
OR = {
NOT = {
has_border_war_with = FROM
}
FROM = {
any_owned_state = {
is_controlled_by = FROM
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
any_neighbor_state = {
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
is_fully_controlled_by = ROOT
}
}
}
}
}
# VPI by Yard1
target_trigger = {
exists = yes
}
target_array = neighbors
target_trigger = {
FROM = {
exists = yes
}
}
highlight_states = {
highlight_states_trigger = {
OR = {
state = FROM.defender_state_vs_@ROOT
AND = {
is_owned_and_controlled_by = FROM
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
any_neighbor_state = {
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
has_ROOT_at_least_1_div_in_current_state_scope = yes
is_fully_controlled_by = ROOT
}
available = {
FROM = {
any_owned_state = {
is_controlled_by = FROM
### 以下固定范围
OR = {
is_core_of = DH1
is_claimed_by = DH1
}
### 以上固定范围
any_neighbor_state = {
is_fully_controlled_by = ROOT # DH1
}
}
}
}
visible = {
ROOT = {
has_completed_focus = DH1_jingong
}
FROM = {
exists = yes
NOT = {
OR = {
is_subject_of = ROOT
is_in_faction_with = ROOT
is_ally_with = ROOT
has_war_with = ROOT
has_border_war_with = ROOT
}
}
}
@@ -164,570 +84,57 @@ DH1_yuanzheng_decision_category = {
}
cost = 15
fire_only_once = no
days_remove = @border_incident_escalation_countdown
days_remove = 10
days_re_enable = 30
war_with_target_on_remove = yes
complete_effect = {
hidden_effect = {
FROM = {
random_owned_controlled_state = {
limit = {
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
any_neighbor_state = {
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
has_ROOT_at_least_1_div_in_current_state_scope = yes
is_fully_controlled_by = ROOT
}
}
save_event_target_as = defender_state
set_variable = {
FROM.defender_state_vs_@ROOT = id
}
set_temp_variable = {
defender_state_temp = id
}
set_state_flag = border_incident_active
}
}
random_state = {
limit = {
is_fully_controlled_by = ROOT
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
has_ROOT_at_least_1_div_in_current_state_scope = yes
any_neighbor_state = {
state = var:FROM.defender_state_vs_@ROOT
}
}
save_event_target_as = attacker_state
set_variable = {
FROM.attacker_state_vs_@ROOT = id
}
set_temp_variable = {
attacker_state_temp = id
}
set_state_flag = border_incident_active
}
}
FROM = {
country_event = {
id = az_NSB_border_incident_defender_warning.1
hours = 1
}
activate_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_incident_warning_defender
random_controlled_state = {
limit = {
any_neighbor_state = {
is_controlled_by = ROOT
}
}
save_event_target_as = defender_state
set_variable = {
FROM.defender_state_vs_@ROOT = id
}
}
}
random_state = {
limit = {
is_controlled_by = ROOT
any_neighbor_state = {
state = var:FROM.defender_state_vs_@ROOT
}
}
save_event_target_as = attacker_state
set_variable = {
FROM.attacker_state_vs_@ROOT = id
}
}
# log = "attacker [FROM.GetName]: [?FROM.attacker_state_vs_@ROOT]"
# log = "defender [FROM.GetName]: [?FROM.defender_state_vs_@ROOT]"
# log = "attacker [FROM.GetName]: [?FROM.attacker_state_vs_@DH1]"
# log = "defender [FROM.GetName]: [?FROM.defender_state_vs_@DH1]"
}
remove_effect = {
hidden_effect = {
var:FROM.defender_state_vs_@ROOT = {
save_event_target_as = defender_state
}
var:FROM.attacker_state_vs_@ROOT = {
save_event_target_as = attacker_state
}
FROM = {
random_owned_controlled_state = {
limit = {
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
any_neighbor_state = {
is_fully_controlled_by = ROOT
has_ROOT_at_least_1_div_in_current_state_scope = yes
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
}
}
set_temp_variable = {
defender_state_temp = id
}
}
}
random_state = {
limit = {
is_fully_controlled_by = ROOT
hidden_trigger = {
NOT = {
has_state_flag = border_incident_active
}
}
has_ROOT_at_least_1_div_in_current_state_scope = yes
any_neighbor_state = {
state = var:FROM.defender_state_vs_@ROOT
}
}
set_temp_variable = {
attacker_state_temp = id
}
}
}
activate_targeted_decision = {
target = FROM
decision = az_NSB_escalate_incident_to_border_conflict
}
}
}
#Mission for defender warning that a conflict with FROM is coming
az_NSB_border_conflict_incident_warning_defender = {
icon = border_war
allowed = {
always = no
} #Activated from effect
available = {
hidden_trigger = {
always = no
}
}
highlight_states = {
highlight_state_targets = {
state = var:defender_state_temp
state = var:ROOT.defender_state_vs_@FROM
}
}
war_with_target_on_timeout = yes
#2
ai_will_do = {
base = 0 #30
modifier = {
}
}
days_mission_timeout = @border_incident_escalation_countdown
fire_only_once = yes
is_good = no
timeout_effect = {
custom_effect_tooltip = escalation_possible_tooltip_for_defender
custom_effect_tooltip = effects_if_border_conflict_is_lost
effect_tooltip = {
# add_threat = 1
add_political_power = -10
var:ROOT.defender_state_vs_@FROM = {
FROM = {
transfer_state = PREV
}
}
}
hidden_effect = {
remove_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_incident_warning_defender
}
activate_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_escalation_warning_defender
}
}
}
}
#Mission for defender warning FROM can escalate to war at any point is coming
az_NSB_border_conflict_escalation_warning_defender = {
icon = border_war
allowed = {
always = no
} #Activated from effect
available = {
hidden_trigger = {
always = no
}
}
highlight_states = {
highlight_state_targets = {
state = var:defender_state_temp
state = var:ROOT.defender_state_vs_@FROM
}
}
war_with_target_on_timeout = yes
#3
ai_will_do = {
base = 0 #30
modifier = {
}
}
days_mission_timeout = @border_conflict_incident_forgotten_timer
fire_only_once = yes
is_good = no
timeout_effect = {
custom_effect_tooltip = from_cannot_escalate
custom_effect_tooltip = effects_if_border_conflict_is_lost
effect_tooltip = {
# add_threat = -1
add_political_power = -10
var:ROOT.defender_state_vs_@FROM = {
FROM = {
transfer_state = PREV
}
}
}
}
}
#Mission for attacker to escalate or incident is forgotten
#Decision to escalate incident on border with FROM to border conflict
az_NSB_escalate_incident_to_border_conflict = {
icon = border_war
allowed = {
always = no
} #Activated from effect
available = {
#var:FROM.attacker_state_vs_@ROOT = {
# is_fully_controlled_by = ROOT
#}
divisions_in_border_state = {
state = var:FROM.attacker_state_vs_@ROOT
border_state = var:FROM.defender_state_vs_@ROOT
size > 0
}
}
highlight_states = {
highlight_state_targets = {
state = var:FROM.attacker_state_vs_@ROOT
}
}
#4
ai_will_do = {
base = 200
modifier = {
}
}
cancel_trigger = {
is_in_faction_with = FROM
}
selectable_mission = yes
fire_only_once = yes #Reactivation handled in effect
days_mission_timeout = @border_conflict_incident_forgotten_timer
timeout_effect = {
custom_effect_tooltip = az_NSB_border_incident_delay_until_new_incident_120
hidden_effect = {
FROM = {
remove_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_escalation_warning_defender
}
}
FROM = {
var:attacker_state_vs_@ROOT = {
clr_state_flag = border_incident_active
}
var:defender_state_vs_@ROOT = {
clr_state_flag = border_incident_active
}
clear_variable = attacker_state_vs_@ROOT
clear_variable = defender_state_vs_@ROOT
}
}
}
complete_effect = {
start_border_war = {
change_state_after_war = no
attacker = {
state = var:FROM.attacker_state_vs_@ROOT
num_provinces = 4
on_win = az_NSB_border_conflict_won_attacker.1
on_lose = az_NSB_border_conflict_lost_attacker.1
on_cancel = az_NSB_border_conflict_canceled_attacker.1
on_win = az_DH1_yuanzheng_won_attacker.1
on_lose = az_DH1_yuanzheng_lost_attacker.1
on_cancel = az_DH1_yuanzheng_lost_attacker.1
}
defender = {
state = var:FROM.defender_state_vs_@ROOT
num_provinces = 4
on_win = az_NSB_border_conflict_won_defender.1
on_lose = az_NSB_border_conflict_lost_defender.1
on_cancel = az_NSB_border_conflict_canceled_defender.1
}
}
FROM = {
activate_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_escalate_conflict
}
activate_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_time_until_cancelled
}
}
activate_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_escalate_conflict
}
activate_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_time_until_cancelled
}
}
}
#Mission for attacker to win border war against FROM in X days
az_NSB_border_conflict_time_until_cancelled = {
icon = border_war
allowed = {
always = no
} #Activated from effect
available = {
var:FROM.defender_state_vs_@ROOT = {
has_border_war = no
}
var:FROM.attacker_state_vs_@ROOT = {
has_border_war = no
}
}
highlight_states = {
highlight_state_targets = {
state = var:defender_state_temp
state = var:FROM.defender_state_vs_@ROOT
}
}
#5
ai_will_do = {
base = 0 # 100
modifier = {
}
}
days_mission_timeout = @border_conflict_time_until_cancelled
is_good = no
fire_only_once = yes #Reactivation handled in effect
complete_effect = {
}
timeout_effect = {
if = {
limit = {
is_border_conflict_defender_vs_FROM = yes
}
cancel_border_war = {
defender = var:defender_state_vs_@FROM
attacker = var:attacker_state_vs_@FROM
}
}
else = {
cancel_border_war = {
defender = var:FROM.defender_state_vs_@ROOT
attacker = var:FROM.attacker_state_vs_@ROOT
}
}
hidden_effect = {
remove_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_escalate_conflict
on_win = az_DH1_yuanzheng_won_defender.1
on_lose = az_DH1_yuanzheng_lost_defender.1
on_cancel = az_DH1_yuanzheng_lost_defender.1
}
}
}
}
#Decision to escalate conflict further
az_NSB_border_conflict_escalate_conflict = {
icon = decision_generic_ignite_civil_war
allowed = {
always = no
} #Activated from effect
visible = {
has_border_war_with = FROM
}
highlight_states = {
highlight_state_targets = {
state = var:FROM.attacker_state_vs_@ROOT
state = var:ROOT.defender_state_vs_@FROM
}
}
cost = 70
#6
ai_will_do = {
base = 0 #30
modifier = {
}
}
fire_only_once = yes #Reactivation handled in effect
complete_effect = {
if = {
limit = {
is_border_conflict_defender_vs_FROM = yes
}
set_border_war_data = {
attacker = var:ROOT.defender_state_vs_@FROM
defender = var:ROOT.defender_state_vs_@FROM
defender_modifier = 0.15
combat_width = 100
}
}
else = {
set_border_war_data = {
attacker = var:FROM.defender_state_vs_@ROOT
defender = var:FROM.defender_state_vs_@ROOT
attacker_modifier = 0.15
combat_width = 100
}
}
FROM = {
set_country_flag = {
flag = az_NSB_border_conflict_escalate_to_war_cooldown_@ROOT
days = @border_conflict_escalate_to_war_countdown
value = 1
}
remove_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_escalate_conflict
}
}
set_country_flag = {
flag = az_NSB_border_conflict_escalate_to_war_cooldown_@FROM
days = @border_conflict_escalate_to_war_countdown
value = 1
}
custom_effect_tooltip = in_45_days
activate_targeted_decision = {
target = FROM
decision = az_NSB_border_conflict_escalate_to_war
}
}
}
#Decision to escalate conflict further
az_NSB_border_conflict_escalate_to_war = {
icon = decision_generic_ignite_civil_war
allowed = {
always = no
} #Activated from effect
visible = {
NOT = {
has_country_flag = az_NSB_border_conflict_escalate_to_war_cooldown_@FROM
}
has_border_war_with = FROM
}
highlight_states = {
highlight_state_targets = {
state = var:FROM.defender_state_vs_@ROOT
state = var:ROOT.attacker_state_vs_@FROM
}
}
cost = 50
#7
ai_will_do = {
base = 0 #30
modifier = {
}
}
days_remove = 15
fire_only_once = yes #Reactivation handled in effect
war_with_target_on_remove = yes
complete_effect = {
if = {
limit = {
is_border_conflict_defender_vs_FROM = yes
}
var:ROOT.defender_state_vs_@FROM = {
save_event_target_as = their_state
}
var:ROOT.attacker_state_vs_@FROM = {
save_event_target_as = our_state
}
}
else = {
var:FROM.defender_state_vs_@ROOT = {
save_event_target_as = our_state
}
var:FROM.attacker_state_vs_@ROOT = {
save_event_target_as = their_state
}
}
FROM = {
country_event = {
id = az_NSB_border_conflict_escalate_to_war.1
}
hidden_effect = {
remove_targeted_decision = {
target = ROOT
decision = az_NSB_border_conflict_escalate_to_war
}
}
}
}
remove_effect = {
cancel_border_war = {
dont_fire_events = yes
defender = var:FROM.defender_state_vs_@ROOT
attacker = var:FROM.attacker_state_vs_@ROOT
}
declare_war_on = {
target = FROM
type = annex_everything
}
if = {
limit = {
is_border_conflict_defender_vs_FROM = yes
}
var:attacker_state_vs_@FROM = {
clr_state_flag = border_incident_active
}
var:defender_state_vs_@FROM = {
clr_state_flag = border_incident_active
}
clear_variable = attacker_state_vs_@FROM
clear_variable = defender_state_vs_@FROM
}
else = {
FROM = {
var:attacker_state_vs_@ROOT = {
clr_state_flag = border_incident_active
}
var:defender_state_vs_@ROOT = {
clr_state_flag = border_incident_active
}
clear_variable = attacker_state_vs_@ROOT
clear_variable = defender_state_vs_@ROOT
}
}
}
}
#Decision to back down from conflict
az_NSB_border_conflict_back_out_of_conflict = {
allowed = {
always = no
} #Activated from effect
visible = {
has_border_war_with = FROM
}
highlight_states = {
highlight_state_targets = {
state = var:FROM.attacker_state_vs_@ROOT
state = var:ROOT.defender_state_vs_@FROM
}
}
#8
ai_will_do = {
base = 0 #30
modifier = {
}
}
fire_only_once = yes #Reactivation handled in effect
complete_effect = {
if = {
limit = {
is_border_conflict_defender_vs_FROM = yes
}
finalize_border_war = {
attacker_win = yes
attacker = ROOT.attacker_state_vs_@FROM
defender = ROOT.attacker_state_vs_@FROM
}
}
else = {
finalize_border_war = {
attacker = FROM.attacker_state_vs_@ROOT
defender = FROM.attacker_state_vs_@ROOT
defender_win = yes
}
}
}
}
}
}

View File

@@ -160,14 +160,17 @@ DOH_DH1_decision_category = {
cost = 0
days_remove = 10
remove_effect = {
DH1 = {
remove_ideas = DH1_AI_xiuyangshengxi
remove_ideas = DH1_AI_zhongshihaijun
remove_ideas = DH1_AI_zhongshikongjun
remove_ideas = DH1_AI_zhongshijingong
remove_ideas = DH1_AI_zhongshifangyu
custom_effect_tooltip = "撤销所有下达的指示。"
hidden_effect = {
DH1 = {
remove_ideas = DH1_AI_xiuyangshengxi
remove_ideas = DH1_AI_zhongshihaijun
remove_ideas = DH1_AI_zhongshikongjun
remove_ideas = DH1_AI_zhongshijingong
remove_ideas = DH1_AI_zhongshifangyu
}
clr_country_flag = DOH_DH1_xiadalezhishi
}
clr_country_flag = DOH_DH1_xiadalezhishi
}
}
}

View File

@@ -11,15 +11,4 @@ DH1_decision_category = {
allowed = {
tag = DH1
}
}
DH1_yuanzheng_decision_category = {
icon = category_gre_faction_management
picture = GFX_decision_dh1decision
priority = 100
visible = {
tag = DH1
}
allowed = {
tag = DH1
}
}
}

View File

@@ -122,27 +122,29 @@ ideas = {
}
}
DH1_AI_zhongshijingong = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}
modifier = {
army_attack_factor = 0.1
ai_focus_aggressive_factor = 1
ai_focus_military_advancements_factor = 1
}
}
DH1_AI_zhongshifangyu = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}
modifier = {
ai_focus_aggressive_factor = 1
army_defence_factor = 0.1
ai_focus_defense_factor = 1
ai_focus_military_advancements_factor = 1
}
}
DH1_AI_zhongshihaijun = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}
@@ -175,7 +177,7 @@ ideas = {
}
}
DH1_AI_zhongshikongjun = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}
@@ -184,7 +186,7 @@ ideas = {
}
}
DH1_AI_xiuyangshengxi = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}
@@ -198,7 +200,7 @@ ideas = {
}
DH1_idea_sixiangbing = {
picture = idea_generic_agrarian_reform
picture = jap_supremacy_of_technology
allowed_civil_war = {
always = yes
}

View File

@@ -206,7 +206,6 @@ generic_jianniang_organization = {
air_agility = 0.05
air_defence = 0.05
reliability = 0.15
build_cost_ic = 0.12
air_range = 1
}
}
@@ -351,6 +350,7 @@ generic_jianniang_organization = {
equipment_bonus = {
air_range = 2
maximum_speed = 0.5
build_cost_ic = 0.12
}
}
trait = {

View File

@@ -2196,7 +2196,7 @@
#search_filters = { FOCUS_FILTER_STABILITY }
completion_reward = {
unlock_decision_tooltip = DH1_yuanzheng_mission
}
}