Starsector API
Loading...
Searching...
No Matches
RollProbability.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd;
2
3import java.util.List;
4import java.util.Map;
5import java.util.Random;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.rules.MemoryAPI;
10import com.fs.starfarer.api.util.Misc;
11import com.fs.starfarer.api.util.Misc.Token;
12
13
17public class RollProbability extends BaseCommandPlugin {
18
19 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
20
21 float prob = params.get(0).getFloat(memoryMap);
22 //prob = 1f;
23
24 long seed;
25 if (dialog.getInteractionTarget() != null) {
26 seed = Misc.getSalvageSeed(dialog.getInteractionTarget(), true);
27 seed += (ruleId == null ? 0 : ruleId.hashCode());
28 seed /= 321L;
29 seed *= (Global.getSector().getClock().getMonth() + 10 + prob * 10f);
30 } else {
31 seed = Misc.genRandomSeed();
32 }
33
34 Random r = Misc.getRandom(seed, 1);
35
36 float f = r.nextFloat();
37 //System.out.println("Seed: " + seed);
38 //System.out.println("rolled: " + f);
39
40 return f < prob; //r.nextFloat() < prob;
41 }
42
43
44}
45
46
47
48
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)