
Table of Contents
A list of passives code. This guide will have the code for in game passives so you can hopefully figure out how to make new passives. (I don’t know what image to put so have some judging spiders).
Introduction
All of these Codes are from a decompiler so some passives may not work. I would be happy to try and help in the comments if a specific code doesn’t work. Also you can comment if you want any specific passives put in this. I hope this collection can be helpful.
Steam and its auto links are at it again. I don’t think the links work but please don’t click on them.
Status Ailments
Here are some Status ailment names that the code makes you use. (the name in () is the in game name.)
An Example of how to write a status script
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, this.owner);
buf self
this.owner.bufListDetail.AddKeywordBufThisRoundByEtc(KeywordBuf.Strength, 1, this.owner);
buf self this turn
behavior.card.target?.bufListDetail?.AddKeywordBufByEtc(KeywordBuf.Bleeding, 1, this.owner);
buf a card target
behavior.card.target?.bufListDetail?.AddKeywordBufThisRoundByEtc(KeywordBuf.Bleeding, 1, this.owner);
buf a card target this turn
alive.bufListDetail.AddKeywordBufThisRoundByEtc(KeywordBuf.Strength, 1, this.owner);
buf your team this turn
alive.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, this.owner);
buf your team
Paralysis
Burn
Bleeding (Bleed)
Vulnerable (Fragile)
Vulnerable_break (Stagger Fragile)
Fairy
Decay (Erosion)
Weak (Feeble)
Disarm
Binding (Bind)
Protection
BreakProtection (Stagger Protection)
Strength
Endurance
Quickness (Haste)
SlashPowerUp (Index, slash Power = to amount)
PenetratePowerUp (Index, Pierce Power = to amount)
HitPowerUp (Index, Blunt Power = to amount)
DefensePowerUp (Block and Evade power = to amount)
WarpCharge (Charge)
Smoke
NullifyPower (The amount doesn’t matter always removed at the end of the turn it activated. Note to make it nullify next turn use normal. To make it nullify immediately use the buf this round script)
SweeperRevival (Persistence)
SweeperDup (The chance of Persistence working is halved by this stack example 2 halves the 0.8 twice to 0.2. This is gained on Persistence working.)
Yun Office Passives
200004 Half Baked Courage
public override void OnDieOtherUnit(BattleUnitModel unit)
{
if (unit.faction != this.owner.faction)
return;
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, this.owner);
}
Finn’s passive
if you want to make it give a status on any death remove the if (unit.faction != this.owner.faction)
return;
You can change parts of the (KeywordBuf.Strength, 1, this.owner) to change what the passive gives you. Change Strength for another status ailment. Change the 1 for the amount of status ailment.
20100 Slash of a Grade 9 Fixer
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Slash || (double) RandomUtil.valueForProb >= 0.5)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 1
});
}
Yun Office Fixer Passive
Change dmg = 1 to increase damage done. Change dmg = 1 to breakDmg = 1 for stagger damage.
(double) RandomUtil.valueForProb >= 0.5 is the probability effect this is 50%. The number to pass needs to be lower than the 0.5 so increasing the 0.5 makes the probability to pass higher
(Example 0.6 is more likely to have the effect trigger than 0.5. Remember because of the return you want to fail the >= for the effect to happen passing ends it at the return).
(behavior.Detail != BehaviourDetail.Slash makes it so non slash dice don’t use the effect. (Change Slash to Penetrate, Hit, Guard, or Evade to change the dice type).
Because the passive uses a Dice type you need to add using “LOR_DiceSystem;” to your using list at the top.
200005 The Art of Defense
public override void BeforeRollDice(BattleDiceBehavior behavior)
{
if (!this.IsDefenseDice(behavior.Detail) || (double) RandomUtil.valueForProb >= 0.25)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
face = 1
});
}
}
Eri’s Passive
face = 1 makes the dice have max roll in groups of 3 so 2 face is +6 max roll. (!this.IsDefenseDice(behavior.Detail) Causes the Passive to only work for Block and Evade dice.
200006 Yun’s Hunch
using LOR_DiceSystem;
public override void BeforeRollDice(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Evasion || (double) RandomUtil.valueForProb >= 0.5)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
face = 1
});
}
Yun’s Passive
behavior.Detail != BehaviourDetail.Evasion makes the passive only work with Evade Dice.
BrotherHood and Hook
200007 Electric Shock
using System.Collections.Generic;
private List<BattleUnitModel> _alreadyTargets = new List<BattleUnitModel>();
public override void OnRoundStart() => this._alreadyTargets.Clear();
public override void OnSucceedAttack(BattleDiceBehavior behavior)
{
if (behavior.card == null || behavior.card.target == null || this._alreadyTargets.Contains(behavior.card.target) || (double) RandomUtil.valueForProb >= 0.25)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.card?.target?.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Paralysis – [behavior.card] , 1, this.owner);
this._alreadyTargets.Add(behavior.card.target);
}
Brother Hoods Passive
200010 Hook
public override void OnKill(BattleUnitModel target)
{
if (target.faction == this.owner.faction)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, this.owner);
}
Hook Office Passive
Pierre and Butchers
210002 Instant Cooking
public override void OnKill(BattleUnitModel target)
{
int v = this.owner.MaxHp / 10;
if (v > 12)
v = 12;
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.RecoverHP(v);
}
Pierre’s Passive
210001 Emergency Rations
public override void OnRoundStart()
{
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.RecoverHP(2);
}
Jack’s Passive
211003 Open Wound
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
BattleUnitModel target = behavior.card.target;
if ((target != null ? (target.bufListDetail.GetKewordBufStack(KeywordBuf.Bleeding) > 0 ? 1 : 0) : 0) == 0)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 1
});
}
Butcher Passive
Streetlight and Lulu
220001 Calmness
public override void OnWinParrying(BattleDiceBehavior behavior)
{
if ((double) RandomUtil.valueForProb >= 0.25)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.card.AddDiceFace(DiceMatch.NextDice, 1);
}
San’s Passive
210003 Talent
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
int? nullable = behavior.card?.target?.speedDiceResult – [behavior.card] [behavior.card.targetSlotOrder].value;
int? speedDiceResultValue = behavior.card?.speedDiceResultValue; – [behavior.card]
if (!(nullable.GetValueOrDefault() < speedDiceResultValue.GetValueOrDefault() & nullable.HasValue & speedDiceResultValue.HasValue))
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 1
});
}
Mar’s Passive
210006 Flaming Bat
public override void OnSucceedAttack(BattleDiceBehavior behavior)
{
if ((double) RandomUtil.valueForProb >= 0.5)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.card.target?.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Burn, 1, this.owner);
}
Lulu’s Passive
211005 Penetration
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Penetrate || (double) RandomUtil.valueForProb >= 0.5)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 1
});
}
Lulu’s Friend Passive
Zwei
221001 Keeping in Stride
public override void OnWinParrying(BattleDiceBehavior behavior)
{
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
this.owner.RecoverHP(1);
}
Zwei Passive
220002 Zwei Swordsmanship 1
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Slash)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 1
});
}
Julia’s Passive
220004 Your Shield
public override void BeforeRollDice(BattleDiceBehavior behavior)
{
if (!this.IsDefenseDice(behavior.Detail))
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
power = 1
});
}
Walter’s Page
220003 Minimum Offense
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Slash)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 1
});
}
Isadora’s Passive
Molar and Stray Dogs
220006 Margin
public override void OnRoundEnd()
{
if (this.owner.allyCardDetail.GetHand().Count != 0)
return;
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.cardSlotDetail.RecoverPlayPoint(1);
this.owner.allyCardDetail.DrawCards(1);
}
Olga’s Passive
220005 Best Choice
using System.Collections.Generic;
public override void OnDiscardByAbility(List<BattleDiceCardModel> cards)
{
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.RecoverHP(cards.Count * 3);
}
Mika’s Passive
220007 In Times Like These!
public override void OnRoundEnd()
{
if (this.owner.allyCardDetail.GetHand().Count > 3)
return;
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, this.owner);
}
Rain’s Passive
221005 Punch to the Solar Plexus
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Hit)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 2
});
}
Stray Dog Passive
220008 Restfulness
public override void OnRoundEnd()
{
if (this.owner.cardHistory.GetCurrentRoundCardList(Singleton<StageController>.Instance.RoundTurn).Count > 0)
return;
this.owner.cardSlotDetail.RecoverPlayPoint(1);
}
Gyeong-mi’s Passive
220009 Double Kick
public override void OnWinParrying(BattleDiceBehavior behavior)
{
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.card.target?.TakeDamage(1, DamageType.Passive, this.owner);
}
Dino’s Passive
220010 Deep Breaths
public override void OnRoundStart()
{
if ((double) RandomUtil.valueForProb >= 0.25)
return;
this.owner.ShowPassiveTypo((PassiveAbilityBase) this);
this.owner.cardSlotDetail.RecoverPlayPoint(1);
}
Zulu’s Passive
Grade 8, Grade 7 Fixer, and Axe Gang
221007 Slashing Prowess of a Grade 8 Fixer
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Slash)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 1
});
}
Grade 8 Fixer’s Passive
221009 Piercing Prowess of a Grade 7 Fixer
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Penetrate)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 1
});
}
Grade 8 Fixer 2 Passive
221010 Slashing Prowess of a Grade 7 Fixer
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Slash)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 2
});
}
Grade 7 Fixer’s Passive
221012 Piercing Prowess of a Grade 7 Fixer
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Penetrate)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 2
});
}
Grade 7 Fixer 2 Passive
221013 Axe Gang Spirit
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail != BehaviourDetail.Hit)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
breakDmg = 1
});
}
Axe Gang Fixer’s Passive
221014 Double Axe
using LOR_DiceSystem;
public override void BeforeGiveDamage(BattleDiceBehavior behavior)
{
if (behavior.Detail == BehaviourDetail.Slash)
{
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = 2
});
}
else
{
if (behavior.Detail != BehaviourDetail.Penetrate)
return;
this.owner.battleCardResultLog?.SetPassiveAbility((PassiveAbilityBase) this);
behavior.ApplyDiceStatBonus(new DiceStatBonus()
{
dmg = -1
});
}
}
Axe Gang Fixer 2 Passive
More Passives to come.
LOR has a lot of Passives so this guide will take some times. I will go in order from Yun Office to End Game, but don’t be afraid to ask for any specific Passives in the comments.
This is all we can share for LOR Passives DLL help – Library Of Ruina for today. I hope you enjoy the guide! If you have anything to add to this guide or we forget something please let us know via comment! We check each comment! Don’t forget to check SteamClue.com for MORE!
- All Library Of Ruina Posts List
Leave a Reply